### Eclipse Workspace Patch 1.0 #P org.eclipse.jdt.core.tests.compiler Index: src/org/eclipse/jdt/core/tests/compiler/parser/StatementRecoveryTest.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/StatementRecoveryTest.java,v retrieving revision 1.7 diff -u -r1.7 StatementRecoveryTest.java --- src/org/eclipse/jdt/core/tests/compiler/parser/StatementRecoveryTest.java 29 Mar 2006 03:50:24 -0000 1.7 +++ src/org/eclipse/jdt/core/tests/compiler/parser/StatementRecoveryTest.java 17 Jul 2006 11:30:29 -0000 @@ -62,6 +62,7 @@ new CompilerOptions(getCompilerOptions()), new DefaultProblemFactory(Locale.getDefault())), optimizeStringLiterals); + parser.setMethodsFullRecovery(false); parser.setStatementsRecovery(false); ICompilationUnit sourceUnit = new CompilationUnit(source, testName, null); @@ -109,6 +110,7 @@ new CompilerOptions(getCompilerOptions()), new DefaultProblemFactory(Locale.getDefault())), optimizeStringLiterals); + parser.setMethodsFullRecovery(false); parser.setStatementsRecovery(false); ICompilationUnit sourceUnit = new CompilationUnit(source, testName, null); @@ -184,6 +186,7 @@ new CompilerOptions(getCompilerOptions()), new DefaultProblemFactory(Locale.getDefault())), optimizeStringLiterals); + parser.setMethodsFullRecovery(false); parser.setStatementsRecovery(false); ICompilationUnit sourceUnit = new CompilationUnit(source, testName, null); Index: src/org/eclipse/jdt/core/tests/compiler/parser/GenericDietRecoveryTest.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/GenericDietRecoveryTest.java,v retrieving revision 1.8 diff -u -r1.8 GenericDietRecoveryTest.java --- src/org/eclipse/jdt/core/tests/compiler/parser/GenericDietRecoveryTest.java 29 Mar 2006 03:50:23 -0000 1.8 +++ src/org/eclipse/jdt/core/tests/compiler/parser/GenericDietRecoveryTest.java 17 Jul 2006 11:30:28 -0000 @@ -87,6 +87,7 @@ new CompilerOptions(getCompilerOptions()), new DefaultProblemFactory(Locale.getDefault())), optimizeStringLiterals); + parser.setMethodsFullRecovery(false); parser.setStatementsRecovery(false); ICompilationUnit sourceUnit = new CompilationUnit(source, testName, null); @@ -126,6 +127,7 @@ new CompilerOptions(getCompilerOptions()), new DefaultProblemFactory(Locale.getDefault())), optimizeStringLiterals); + parser.setMethodsFullRecovery(true); parser.setStatementsRecovery(true); ICompilationUnit sourceUnit = new CompilationUnit(source, testName, null); Index: src/org/eclipse/jdt/core/tests/compiler/parser/DietRecoveryTest.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/DietRecoveryTest.java,v retrieving revision 1.42 diff -u -r1.42 DietRecoveryTest.java --- src/org/eclipse/jdt/core/tests/compiler/parser/DietRecoveryTest.java 29 Mar 2006 03:50:24 -0000 1.42 +++ src/org/eclipse/jdt/core/tests/compiler/parser/DietRecoveryTest.java 17 Jul 2006 11:30:27 -0000 @@ -83,6 +83,7 @@ new CompilerOptions(getCompilerOptions()), new DefaultProblemFactory(Locale.getDefault())), optimizeStringLiterals); + parser.setMethodsFullRecovery(false); parser.setStatementsRecovery(false); ICompilationUnit sourceUnit = new CompilationUnit(source, testName, null); @@ -121,6 +122,7 @@ new CompilerOptions(getCompilerOptions()), new DefaultProblemFactory(Locale.getDefault())), optimizeStringLiterals); + parser.setMethodsFullRecovery(true); parser.setStatementsRecovery(true); ICompilationUnit sourceUnit = new CompilationUnit(source, testName, null); Index: src/org/eclipse/jdt/core/tests/util/Util.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/util/Util.java,v retrieving revision 1.47 diff -u -r1.47 Util.java --- src/org/eclipse/jdt/core/tests/util/Util.java 29 Jun 2006 09:45:33 -0000 1.47 +++ src/org/eclipse/jdt/core/tests/util/Util.java 17 Jul 2006 11:30:30 -0000 @@ -83,6 +83,7 @@ } }; CompilerOptions compilerOptions = new CompilerOptions(options); + compilerOptions.performMethodsFullRecovery = false; compilerOptions.performStatementsRecovery = false; Compiler batchCompiler = new Compiler( Index: src/org/eclipse/jdt/core/tests/compiler/regression/AbstractRegressionTest.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AbstractRegressionTest.java,v retrieving revision 1.63 diff -u -r1.63 AbstractRegressionTest.java --- src/org/eclipse/jdt/core/tests/compiler/regression/AbstractRegressionTest.java 27 Jun 2006 07:44:48 -0000 1.63 +++ src/org/eclipse/jdt/core/tests/compiler/regression/AbstractRegressionTest.java 17 Jul 2006 11:30:30 -0000 @@ -389,6 +389,7 @@ options.putAll(customOptions); } CompilerOptions compilerOptions = new CompilerOptions(options); + compilerOptions.performMethodsFullRecovery = false; compilerOptions.performStatementsRecovery = false; Compiler batchCompiler = new Compiler( @@ -498,6 +499,7 @@ false /* show warning token*/); CompilerOptions compilerOptions = new CompilerOptions(getCompilerOptions()); + compilerOptions.performMethodsFullRecovery = false; compilerOptions.performStatementsRecovery = false; Compiler batchCompiler = new Compiler( @@ -657,6 +659,7 @@ options.putAll(customOptions); } CompilerOptions compilerOptions = new CompilerOptions(options); + compilerOptions.performMethodsFullRecovery = performStatementsRecovery; compilerOptions.performStatementsRecovery = performStatementsRecovery; Compiler batchCompiler = new Compiler( @@ -728,6 +731,7 @@ options.putAll(customOptions); } CompilerOptions compilerOptions = new CompilerOptions(options); + compilerOptions.performMethodsFullRecovery = false; compilerOptions.performStatementsRecovery = false; Compiler batchCompiler = new Compiler( #P org.eclipse.jdt.core.tests.model Index: src/org/eclipse/jdt/core/tests/model/LocalElementTests.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/LocalElementTests.java,v retrieving revision 1.12 diff -u -r1.12 LocalElementTests.java --- src/org/eclipse/jdt/core/tests/model/LocalElementTests.java 26 Jun 2006 10:59:45 -0000 1.12 +++ src/org/eclipse/jdt/core/tests/model/LocalElementTests.java 17 Jul 2006 11:30:35 -0000 @@ -451,5 +451,33 @@ deleteFile("/P/X.java"); } } + + /* + * Local type test. + */ + public void testLocalType5() throws CoreException { + try { + createFile( + "/P/X.java", + "public class X {\n" + + " void foo() {\n" + + " class Z {\n" + + " }\n" + + " Z\n" + + " }\n" + + "}" + ); + ICompilationUnit cu = getCompilationUnit("/P/X.java"); + assertElementDescendants( + "Unexpected compilation unit contents", + "X.java\n" + + " class X\n" + + " void foo()\n" + + " class Z", + cu); + } finally { + deleteFile("/P/X.java"); + } + } } #P org.eclipse.jdt.core.tools Index: src/org/eclipse/jdt/core/tools/parser/UpdateParserFiles.java =================================================================== RCS file: /data/cvs/eclipse/org.eclipse.jdt.core.tools/src/org/eclipse/jdt/core/tools/parser/UpdateParserFiles.java,v retrieving revision 1.8 diff -u -r1.8 UpdateParserFiles.java --- src/org/eclipse/jdt/core/tools/parser/UpdateParserFiles.java 31 May 2005 16:52:13 -0000 1.8 +++ src/org/eclipse/jdt/core/tools/parser/UpdateParserFiles.java 17 Jul 2006 11:30:36 -0000 @@ -19,13 +19,13 @@ public void testUpdate() { final int language = ParserUpdater.JAVA; - String parserDirectoryName = "D:/eclipse/workspaces/head/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser"; + String parserDirectoryName = "D:/astart/workspaces/wRAD/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser"; switch(language) { case ParserUpdater.X10 : parserDirectoryName = "D:/eclipse/workspaces/head/X10/compiler/org/eclipse/jdt/internal/compiler/parser"; break; } - ParserUpdater updater = new ParserUpdater("D:/java_tools/jikespg", parserDirectoryName, language); //$NON-NLS-1$ //$NON-NLS-2$ + ParserUpdater updater = new ParserUpdater("D:/astart/workspaces/wRAD/_GEN_TABLE_/jikespgfiles", parserDirectoryName, language); //$NON-NLS-1$ //$NON-NLS-2$ updater.update(); } } #P org.eclipse.jdt.core Index: codeassist/org/eclipse/jdt/internal/codeassist/impl/AssistParser.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/impl/AssistParser.java,v retrieving revision 1.75 diff -u -r1.75 AssistParser.java --- codeassist/org/eclipse/jdt/internal/codeassist/impl/AssistParser.java 28 Mar 2006 20:30:02 -0000 1.75 +++ codeassist/org/eclipse/jdt/internal/codeassist/impl/AssistParser.java 17 Jul 2006 11:30:42 -0000 @@ -76,6 +76,7 @@ super(problemReporter, true); this.javadocParser.checkDocComment = false; + this.setMethodsFullRecovery(false); this.setStatementsRecovery(false); } public abstract char[] assistIdentifier(); Index: model/org/eclipse/jdt/internal/core/CompilationUnit.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/CompilationUnit.java,v retrieving revision 1.232 diff -u -r1.232 CompilationUnit.java --- model/org/eclipse/jdt/internal/core/CompilationUnit.java 23 Jun 2006 13:56:42 -0000 1.232 +++ model/org/eclipse/jdt/internal/core/CompilationUnit.java 17 Jul 2006 11:30:50 -0000 @@ -126,6 +126,7 @@ true/*report local declarations*/, !createAST /*optimize string literals only if not creating a DOM AST*/); parser.reportOnlyOneSyntaxError = !computeProblems; + parser.setMethodsFullRecovery(true); parser.setStatementsRecovery(statementsRecovery); if (!computeProblems && !resolveBindings && !createAST) // disable javadoc parsing if not computing problems, not resolving and not creating ast Index: model/org/eclipse/jdt/internal/core/CompilationUnitProblemFinder.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/CompilationUnitProblemFinder.java,v retrieving revision 1.55 diff -u -r1.55 CompilationUnitProblemFinder.java --- model/org/eclipse/jdt/internal/core/CompilationUnitProblemFinder.java 7 Apr 2006 09:03:37 -0000 1.55 +++ model/org/eclipse/jdt/internal/core/CompilationUnitProblemFinder.java 17 Jul 2006 11:30:50 -0000 @@ -115,6 +115,7 @@ protected static CompilerOptions getCompilerOptions(Map settings, boolean creatingAST, boolean statementsRecovery) { CompilerOptions compilerOptions = new CompilerOptions(settings); + compilerOptions.performMethodsFullRecovery = statementsRecovery; compilerOptions.performStatementsRecovery = statementsRecovery; compilerOptions.parseLiteralExpressionsAsConstants = !creatingAST; /*parse literal expressions as constants only if not creating a DOM AST*/ compilerOptions.storeAnnotations = creatingAST; /*store annotations in the bindings if creating a DOM AST*/ Index: model/org/eclipse/jdt/internal/core/util/CodeSnippetParsingUtil.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/CodeSnippetParsingUtil.java,v retrieving revision 1.14 diff -u -r1.14 CodeSnippetParsingUtil.java --- model/org/eclipse/jdt/internal/core/util/CodeSnippetParsingUtil.java 29 Mar 2006 03:14:00 -0000 1.14 +++ model/org/eclipse/jdt/internal/core/util/CodeSnippetParsingUtil.java 17 Jul 2006 11:30:50 -0000 @@ -62,6 +62,7 @@ new DefaultProblemFactory(Locale.getDefault())); CommentRecorderParser parser = new CommentRecorderParser(problemReporter, false); + parser.setMethodsFullRecovery(false); parser.setStatementsRecovery(false); ICompilationUnit sourceUnit = @@ -173,6 +174,7 @@ compilerOptions, new DefaultProblemFactory(Locale.getDefault())); CommentRecorderParser parser = new CommentRecorderParser(problemReporter, false); + parser.setMethodsFullRecovery(false); parser.setStatementsRecovery(enabledStatementRecovery); ICompilationUnit sourceUnit = Index: eval/org/eclipse/jdt/internal/eval/Evaluator.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/eval/org/eclipse/jdt/internal/eval/Evaluator.java,v retrieving revision 1.37 diff -u -r1.37 Evaluator.java --- eval/org/eclipse/jdt/internal/eval/Evaluator.java 7 Apr 2006 09:03:35 -0000 1.37 +++ eval/org/eclipse/jdt/internal/eval/Evaluator.java 17 Jul 2006 11:30:49 -0000 @@ -160,6 +160,7 @@ */ Compiler getCompiler(ICompilerRequestor compilerRequestor) { CompilerOptions compilerOptions = new CompilerOptions(this.options); + compilerOptions.performMethodsFullRecovery = true; compilerOptions.performStatementsRecovery = true; return new Compiler( this.environment, Index: eval/org/eclipse/jdt/internal/eval/CodeSnippetEvaluator.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/eval/org/eclipse/jdt/internal/eval/CodeSnippetEvaluator.java,v retrieving revision 1.26 diff -u -r1.26 CodeSnippetEvaluator.java --- eval/org/eclipse/jdt/internal/eval/CodeSnippetEvaluator.java 7 Apr 2006 09:03:37 -0000 1.26 +++ eval/org/eclipse/jdt/internal/eval/CodeSnippetEvaluator.java 17 Jul 2006 11:30:49 -0000 @@ -117,6 +117,7 @@ // the code snippet support classes CompilerOptions compilerOptions = new CompilerOptions(this.options); + compilerOptions.performMethodsFullRecovery = true; compilerOptions.performStatementsRecovery = true; compiler = new CodeSnippetCompiler( @@ -153,6 +154,7 @@ // then a default implementation is provided. CompilerOptions compilerOptions = new CompilerOptions(this.options); + compilerOptions.performMethodsFullRecovery = true; compilerOptions.performStatementsRecovery = true; compiler = new Compiler( getWrapperEnvironment(), Index: dom/org/eclipse/jdt/core/dom/CompilationUnitResolver.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/CompilationUnitResolver.java,v retrieving revision 1.120 diff -u -r1.120 CompilationUnitResolver.java --- dom/org/eclipse/jdt/core/dom/CompilationUnitResolver.java 7 Apr 2006 09:03:35 -0000 1.120 +++ dom/org/eclipse/jdt/core/dom/CompilationUnitResolver.java 17 Jul 2006 11:30:48 -0000 @@ -259,6 +259,7 @@ protected static CompilerOptions getCompilerOptions(Map options, boolean statementsRecovery) { CompilerOptions compilerOptions = new CompilerOptions(options); + compilerOptions.performMethodsFullRecovery = statementsRecovery; compilerOptions.performStatementsRecovery = statementsRecovery; compilerOptions.parseLiteralExpressionsAsConstants = false; compilerOptions.storeAnnotations = true /*store annotations in the bindings*/; @@ -378,6 +379,7 @@ throw new IllegalStateException(); } CompilerOptions compilerOptions = new CompilerOptions(settings); + compilerOptions.performMethodsFullRecovery = statementsRecovery; compilerOptions.performStatementsRecovery = statementsRecovery; Parser parser = new CommentRecorderParser( new ProblemReporter( Index: compiler/org/eclipse/jdt/internal/compiler/parser/Parser.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/Parser.java,v retrieving revision 1.351 diff -u -r1.351 Parser.java --- compiler/org/eclipse/jdt/internal/compiler/parser/Parser.java 27 Jun 2006 08:54:15 -0000 1.351 +++ compiler/org/eclipse/jdt/internal/compiler/parser/Parser.java 17 Jul 2006 11:30:48 -0000 @@ -8937,7 +8937,7 @@ this.recoveryScanner.getData(); } - if (this.methodRecoveryActivated) { + if (this.methodRecoveryActivated && this.options.performStatementsRecovery) { this.methodRecoveryActivated = false; this.recoverStatements(); this.methodRecoveryActivated = true; @@ -8959,7 +8959,7 @@ //convert bugs into parse error boolean oldMethodRecoveryActivated = this.methodRecoveryActivated; - if(this.options.performStatementsRecovery) { + if(this.options.performMethodsFullRecovery) { this.methodRecoveryActivated = true; } @@ -9139,7 +9139,7 @@ //convert bugs into parse error boolean oldMethodRecoveryActivated = this.methodRecoveryActivated; - if(this.options.performStatementsRecovery) { + if(this.options.performMethodsFullRecovery) { this.methodRecoveryActivated = true; } @@ -9201,7 +9201,7 @@ return; boolean oldMethodRecoveryActivated = this.methodRecoveryActivated; - if(this.options.performStatementsRecovery) { + if(this.options.performMethodsFullRecovery) { this.methodRecoveryActivated = true; this.rParenPos = md.sourceEnd; } @@ -9976,7 +9976,11 @@ /* attempt to reset state in order to resume to parse loop */ return this.resumeAfterRecovery(); } +public void setMethodsFullRecovery(boolean enabled) { + this.options.performMethodsFullRecovery = enabled; +} public void setStatementsRecovery(boolean enabled) { + if(enabled) this.options.performMethodsFullRecovery = true; this.options.performStatementsRecovery = enabled; } public String toString() { Index: model/org/eclipse/jdt/internal/compiler/DocumentElementParser.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/compiler/DocumentElementParser.java,v retrieving revision 1.25 diff -u -r1.25 DocumentElementParser.java --- model/org/eclipse/jdt/internal/compiler/DocumentElementParser.java 29 Mar 2006 03:08:49 -0000 1.25 +++ model/org/eclipse/jdt/internal/compiler/DocumentElementParser.java 17 Jul 2006 11:30:49 -0000 @@ -48,6 +48,7 @@ this.options = options; this.javadocParser.checkDocComment = false; + this.setMethodsFullRecovery(false); this.setStatementsRecovery(false); } /* Index: batch/org/eclipse/jdt/internal/compiler/batch/Main.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/batch/org/eclipse/jdt/internal/compiler/batch/Main.java,v retrieving revision 1.258 diff -u -r1.258 Main.java --- batch/org/eclipse/jdt/internal/compiler/batch/Main.java 26 Jun 2006 13:14:25 -0000 1.258 +++ batch/org/eclipse/jdt/internal/compiler/batch/Main.java 17 Jul 2006 11:30:40 -0000 @@ -2854,6 +2854,7 @@ INameEnvironment environment = getLibraryAccess(); this.compilerOptions = new CompilerOptions(this.options); + this.compilerOptions.performMethodsFullRecovery = false; this.compilerOptions.performStatementsRecovery = false; this.batchCompiler = new Compiler( Index: model/org/eclipse/jdt/internal/core/builder/AbstractImageBuilder.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/AbstractImageBuilder.java,v retrieving revision 1.96 diff -u -r1.96 AbstractImageBuilder.java --- model/org/eclipse/jdt/internal/core/builder/AbstractImageBuilder.java 25 Apr 2006 20:39:49 -0000 1.96 +++ model/org/eclipse/jdt/internal/core/builder/AbstractImageBuilder.java 17 Jul 2006 11:30:50 -0000 @@ -419,6 +419,7 @@ // called once when the builder is initialized... can override if needed CompilerOptions compilerOptions = new CompilerOptions(projectOptions); + compilerOptions.performMethodsFullRecovery = true; compilerOptions.performStatementsRecovery = true; Compiler newCompiler = new Compiler( nameEnvironment, Index: compiler/org/eclipse/jdt/internal/compiler/impl/CompilerOptions.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/impl/CompilerOptions.java,v retrieving revision 1.168 diff -u -r1.168 CompilerOptions.java --- compiler/org/eclipse/jdt/internal/compiler/impl/CompilerOptions.java 18 Apr 2006 19:08:15 -0000 1.168 +++ compiler/org/eclipse/jdt/internal/compiler/impl/CompilerOptions.java 17 Jul 2006 11:30:43 -0000 @@ -289,6 +289,9 @@ public boolean treatOptionalErrorAsFatal = true; // parser perform statements recovery + public boolean performMethodsFullRecovery = true; + + // parser perform statements recovery public boolean performStatementsRecovery = true; // store annotations #P org.eclipse.jdt.core.tests Index: Eclipse Java Tests Compiler/org/eclipse/jdt/tests/compiler/regression/FromPRsTest.java =================================================================== RCS file: /data/cvs/eclipse/org.eclipse.jdt.core.tests/Eclipse Java Tests Compiler/org/eclipse/jdt/tests/compiler/regression/FromPRsTest.java,v retrieving revision 1.33 diff -u -r1.33 FromPRsTest.java --- Eclipse Java Tests Compiler/org/eclipse/jdt/tests/compiler/regression/FromPRsTest.java 7 Apr 2006 09:03:46 -0000 1.33 +++ Eclipse Java Tests Compiler/org/eclipse/jdt/tests/compiler/regression/FromPRsTest.java 17 Jul 2006 11:30:52 -0000 @@ -35,6 +35,7 @@ Requestor requestor = new Requestor(problemFactory, OUTPUT_DIR.endsWith(File.separator) ? OUTPUT_DIR : OUTPUT_DIR + File.separator, false, null, false, false); CompilerOptions compilerOptions = new CompilerOptions(getCompilerOptions()); + compilerOptions.performMethodsFullRecovery = false; compilerOptions.performStatementsRecovery = false; Compiler batchCompiler = new Compiler(