*** empty log message ***
diff --git a/codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionParser.java b/codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionParser.java
index 8ed19e3..7f56946 100644
--- a/codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionParser.java
+++ b/codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionParser.java
@@ -76,10 +76,6 @@
 	int lastModifiers = AccDefault;

 	int lastModifiersStart = -1;

 	

-/** @deprecated - should use constructor with assertMode */

-public CompletionParser(ProblemReporter problemReporter) {

-	this(problemReporter, false/*no assertion by default*/);

-}

 public CompletionParser(ProblemReporter problemReporter, boolean assertMode) {

 	super(problemReporter, assertMode);

 }

diff --git a/codeassist/org/eclipse/jdt/internal/codeassist/select/SelectionParser.java b/codeassist/org/eclipse/jdt/internal/codeassist/select/SelectionParser.java
index ae3e459..9edc91b 100644
--- a/codeassist/org/eclipse/jdt/internal/codeassist/select/SelectionParser.java
+++ b/codeassist/org/eclipse/jdt/internal/codeassist/select/SelectionParser.java
@@ -32,11 +32,7 @@
 

 	public static final char[] SUPER = "super".toCharArray(); //$NON-NLS-1$

 	public static final char[] THIS = "this".toCharArray(); //$NON-NLS-1$

-

-/** @deprecated - should use constructor with assertMode */

-public SelectionParser(ProblemReporter problemReporter) {

-	this(problemReporter, false/*no assertion by default*/);

-}	

+	

 public SelectionParser(ProblemReporter problemReporter, boolean assertMode) {

 	super(problemReporter, assertMode);

 }

diff --git a/compiler/org/eclipse/jdt/internal/compiler/DocumentElementParser.java b/compiler/org/eclipse/jdt/internal/compiler/DocumentElementParser.java
index 43eb42d..2db9fb4 100644
--- a/compiler/org/eclipse/jdt/internal/compiler/DocumentElementParser.java
+++ b/compiler/org/eclipse/jdt/internal/compiler/DocumentElementParser.java
@@ -62,11 +62,6 @@
 	intArrayStack = new int[30][];

 }

 

-public DocumentElementParser(

-	final IDocumentElementRequestor requestor, 

-	IProblemFactory problemFactory) {

-		this(requestor, problemFactory, new CompilerOptions());

-}

 /**

  *

  * INTERNAL USE-ONLY

diff --git a/compiler/org/eclipse/jdt/internal/compiler/HierarchyResolver.java b/compiler/org/eclipse/jdt/internal/compiler/HierarchyResolver.java
index 1277ee5..83fe0ab 100644
--- a/compiler/org/eclipse/jdt/internal/compiler/HierarchyResolver.java
+++ b/compiler/org/eclipse/jdt/internal/compiler/HierarchyResolver.java
@@ -36,6 +36,7 @@
 	private IGenericType[] typeModels;

 	private ReferenceBinding[] typeBindings;

 	private ReferenceBinding focusType;

+	private CompilerOptions options;

 	

 public HierarchyResolver(

 	INameEnvironment nameEnvironment,

@@ -45,7 +46,7 @@
 	IProblemFactory problemFactory) {

 

 	// create a problem handler given a handling policy

-	CompilerOptions options = settings == null ? new CompilerOptions() : new CompilerOptions(settings);

+	options = settings == null ? new CompilerOptions() : new CompilerOptions(settings);

 	ProblemReporter problemReporter = new ProblemReporter(policy, options, problemFactory);

 	this.lookupEnvironment = new LookupEnvironment(this, options, problemReporter, nameEnvironment);

 	this.requestor = requestor;

@@ -54,11 +55,11 @@
 	this.typeModels = new IGenericType[5];

 	this.typeBindings = new ReferenceBinding[5];

 }

-public HierarchyResolver(INameEnvironment nameEnvironment, IHierarchyRequestor requestor, IProblemFactory problemFactory) {

+public HierarchyResolver(INameEnvironment nameEnvironment, Map settings, IHierarchyRequestor requestor, IProblemFactory problemFactory) {

 	this(

 		nameEnvironment,

 		DefaultErrorHandlingPolicies.exitAfterAllProblems(),

-		null,

+		settings,

 		requestor,

 		problemFactory);

 }

@@ -265,7 +266,6 @@
 		for (int i = 0; i < sourceLength; i++){

 			ICompilationUnit sourceUnit = sourceUnits[i];

 			CompilationResult unitResult = new CompilationResult(sourceUnit, suppliedLength+i, suppliedLength+sourceLength); 

-			CompilerOptions options = new CompilerOptions();

 			Parser parser = new Parser(lookupEnvironment.problemReporter, true, options.assertMode);

 			CompilationUnitDeclaration parsedUnit = parser.dietParse(sourceUnit, unitResult);

 			if (parsedUnit != null) {

diff --git a/compiler/org/eclipse/jdt/internal/compiler/SourceElementParser.java b/compiler/org/eclipse/jdt/internal/compiler/SourceElementParser.java
index fa34ab4..7cd4e1e 100644
--- a/compiler/org/eclipse/jdt/internal/compiler/SourceElementParser.java
+++ b/compiler/org/eclipse/jdt/internal/compiler/SourceElementParser.java
@@ -93,6 +93,7 @@
 	nestedTypeIndex = 0;

 }

 

+/** @deprecated use SourceElementParser(ISourceElementRequestor, IProblemFactory, CompilerOptions) */

 public SourceElementParser(

 	final ISourceElementRequestor requestor, 

 	IProblemFactory problemFactory) {

@@ -102,8 +103,9 @@
 public SourceElementParser(

 	final ISourceElementRequestor requestor, 

 	IProblemFactory problemFactory,

+	CompilerOptions options,

 	boolean reportLocalDeclarations) {

-		this(requestor, problemFactory, new CompilerOptions());

+		this(requestor, problemFactory, options);

 		if (reportLocalDeclarations) {

 			this.localDeclarationVisitor = new LocalDeclarationVisitor();

 		}

diff --git a/compiler/org/eclipse/jdt/internal/compiler/parser/Parser.java b/compiler/org/eclipse/jdt/internal/compiler/parser/Parser.java
index b4f3cae..2560a5a 100644
--- a/compiler/org/eclipse/jdt/internal/compiler/parser/Parser.java
+++ b/compiler/org/eclipse/jdt/internal/compiler/parser/Parser.java
@@ -359,12 +359,7 @@
 	public static final int SquareBracket = 1;

 	public static final int CurlyBracket = 2;

 	public static final int BracketKinds = 3;

-public Parser(ProblemReporter problemReporter) {

-	this(problemReporter, false);

-}

-public Parser(ProblemReporter problemReporter, boolean optimizeStringLiterals) {

-	this(problemReporter, false, false);

-}

+

 public Parser(ProblemReporter problemReporter, boolean optimizeStringLiterals, boolean assertMode) {

 		

 	this.problemReporter = problemReporter;

diff --git a/model/org/eclipse/jdt/internal/core/CompilationUnit.java b/model/org/eclipse/jdt/internal/core/CompilationUnit.java
index face277..9ee2238 100644
--- a/model/org/eclipse/jdt/internal/core/CompilationUnit.java
+++ b/model/org/eclipse/jdt/internal/core/CompilationUnit.java
@@ -10,6 +10,7 @@
 import org.eclipse.jdt.internal.codeassist.*;

 import org.eclipse.jdt.internal.compiler.*;

 import org.eclipse.jdt.internal.compiler.env.INameEnvironment;

+import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;

 import org.eclipse.jdt.core.*;

 import org.eclipse.jdt.core.jdom.IDOMNode;

 import org.eclipse.jdt.internal.core.lookup.*;

@@ -199,7 +200,7 @@
 		// generate structure

 		CompilationUnitStructureRequestor requestor = new CompilationUnitStructureRequestor(this, unitInfo, newElements);

 		IProblemFactory factory = new DefaultProblemFactory();

-		SourceElementParser parser = new SourceElementParser(requestor, factory);

+		SourceElementParser parser = new SourceElementParser(requestor, factory, new CompilerOptions(JavaCore.getOptions()));

 		parser.parseCompilationUnit(this, !isWorkingCopy());

 		if (isWorkingCopy()) {

 			// remember problems

diff --git a/model/org/eclipse/jdt/internal/core/SourceMapper.java b/model/org/eclipse/jdt/internal/core/SourceMapper.java
index f3c2a83..1176313 100644
--- a/model/org/eclipse/jdt/internal/core/SourceMapper.java
+++ b/model/org/eclipse/jdt/internal/core/SourceMapper.java
@@ -10,6 +10,7 @@
 

 import org.eclipse.jdt.internal.compiler.*;

 import org.eclipse.jdt.internal.compiler.env.*;

+import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;

 import org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader;

 import org.eclipse.jdt.internal.compiler.problem.DefaultProblemFactory;

 import org.eclipse.jdt.internal.compiler.util.Util;

@@ -689,9 +690,9 @@
 					this.anonymousClassName = Integer.parseInt(fType.getElementName());

 				} catch(NumberFormatException e) {

 				}

-				parser = new SourceElementParser(this, factory, true);

+				parser = new SourceElementParser(this, factory, new CompilerOptions(JavaCore.getOptions()), true);

 			} else {

-				parser = new SourceElementParser(this, factory);

+				parser = new SourceElementParser(this, factory, new CompilerOptions(JavaCore.getOptions()));

 			}

 			parser.parseCompilationUnit(

 				new BasicCompilationUnit(contents, type.getElementName() + ".java" ), //$NON-NLS-1$

diff --git a/model/org/eclipse/jdt/internal/core/hierarchy/HierarchyBuilder.java b/model/org/eclipse/jdt/internal/core/hierarchy/HierarchyBuilder.java
index 7f1646c..16471ad 100644
--- a/model/org/eclipse/jdt/internal/core/hierarchy/HierarchyBuilder.java
+++ b/model/org/eclipse/jdt/internal/core/hierarchy/HierarchyBuilder.java
@@ -57,7 +57,7 @@
 	this.searchableEnvironment = (SearchableEnvironment)project.getSearchableNameEnvironment();

 	this.nameLookup = project.getNameLookup();

 	this.hierarchyResolver = 

-		new HierarchyResolver(this.searchableEnvironment, this, new DefaultProblemFactory());

+		new HierarchyResolver(this.searchableEnvironment, JavaCore.getOptions(), this, new DefaultProblemFactory());

 	this.infoToHandle = new Hashtable(5);

 }

 public abstract void build(boolean computeSubtypes) throws JavaModelException, CoreException;

diff --git a/model/org/eclipse/jdt/internal/core/hierarchy/IndexBasedHierarchyBuilder.java b/model/org/eclipse/jdt/internal/core/hierarchy/IndexBasedHierarchyBuilder.java
index b873877..d8f4a75 100644
--- a/model/org/eclipse/jdt/internal/core/hierarchy/IndexBasedHierarchyBuilder.java
+++ b/model/org/eclipse/jdt/internal/core/hierarchy/IndexBasedHierarchyBuilder.java
@@ -177,7 +177,7 @@
 		}

 		this.nameLookup = project.getNameLookup();

 		this.hierarchyResolver = 

-			new HierarchyResolver(this.searchableEnvironment, this, new DefaultProblemFactory());

+			new HierarchyResolver(this.searchableEnvironment, JavaCore.getOptions(), this, new DefaultProblemFactory());

 		if (focusType != null) {

 			char[] fullyQualifiedName = focusType.getFullyQualifiedName().toCharArray();

 			this.hierarchyResolver.setFocusType(CharOperation.splitOn('.', fullyQualifiedName));

diff --git a/model/org/eclipse/jdt/internal/core/jdom/DOMBuilder.java b/model/org/eclipse/jdt/internal/core/jdom/DOMBuilder.java
index f5c1b11..b1cb4fa 100644
--- a/model/org/eclipse/jdt/internal/core/jdom/DOMBuilder.java
+++ b/model/org/eclipse/jdt/internal/core/jdom/DOMBuilder.java
@@ -6,6 +6,8 @@
  */

 import org.eclipse.jdt.internal.compiler.*;

 import org.eclipse.jdt.internal.compiler.env.ICompilationUnit;

+import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;

+import org.eclipse.jdt.core.JavaCore;

 import org.eclipse.jdt.core.jdom.*;

 import org.eclipse.jdt.internal.core.util.*;

 

@@ -597,7 +599,7 @@
  * Creates a new parser.

  */

 protected DocumentElementParser getParser() {

-	return new DocumentElementParser(this, new NullProblemFactory());

+	return new DocumentElementParser(this, new NullProblemFactory(), new CompilerOptions(JavaCore.getOptions()));

 }

 /**

  * Initializes the builder to create a document fragment.

diff --git a/model/org/eclipse/jdt/internal/core/jdom/SimpleDOMBuilder.java b/model/org/eclipse/jdt/internal/core/jdom/SimpleDOMBuilder.java
index 04f409b..ddec783 100644
--- a/model/org/eclipse/jdt/internal/core/jdom/SimpleDOMBuilder.java
+++ b/model/org/eclipse/jdt/internal/core/jdom/SimpleDOMBuilder.java
@@ -7,6 +7,8 @@
 

 import org.eclipse.jdt.internal.compiler.*;

 import org.eclipse.jdt.internal.compiler.env.ICompilationUnit;

+import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;

+import org.eclipse.jdt.core.JavaCore;

 import org.eclipse.jdt.core.jdom.*;

 import org.eclipse.jdt.internal.core.util.*;

 

@@ -212,6 +214,6 @@
  * Creates a new parser.

  */

 protected SourceElementParser getParser() {

-	return new SourceElementParser(this, new NullProblemFactory());

+	return new SourceElementParser(this, new NullProblemFactory(), new CompilerOptions(JavaCore.getOptions()));

 }

 }

diff --git a/search/org/eclipse/jdt/internal/core/search/indexing/SourceIndexer.java b/search/org/eclipse/jdt/internal/core/search/indexing/SourceIndexer.java
index 4925171..0f1bf48 100644
--- a/search/org/eclipse/jdt/internal/core/search/indexing/SourceIndexer.java
+++ b/search/org/eclipse/jdt/internal/core/search/indexing/SourceIndexer.java
@@ -5,8 +5,10 @@
  * All Rights Reserved.

  */

 

+import org.eclipse.jdt.core.JavaCore;

 import org.eclipse.jdt.internal.compiler.*;

 import org.eclipse.jdt.internal.core.index.*;

+import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;

 import org.eclipse.jdt.internal.compiler.parser.InvalidInputException;

 import org.eclipse.jdt.internal.compiler.parser.Scanner;

 import org.eclipse.jdt.internal.compiler.parser.TerminalSymbols;

@@ -48,7 +50,7 @@
 

 	// Create a new Parser

 	SourceIndexerRequestor requestor = new SourceIndexerRequestor(this, document);

-	SourceElementParser parser = new SourceElementParser(requestor, problemFactory, true); // index local declarations

+	SourceElementParser parser = new SourceElementParser(requestor, problemFactory, new CompilerOptions(JavaCore.getOptions()), true); // index local declarations

 

 	// Launch the parser

 	char[] source = null;