From 2c2d8aa7ba193d80394867d2f6025d47f27b1f9e Mon Sep 17 00:00:00 2001 From: Olivier Thomann Date: Tue, 22 Apr 2008 14:29:40 +0000 Subject: HEAD - Fix for 222735 --- .../jdt/core/tests/dom/ASTConverter15Test.java | 70 ++++++++++++++-------- .../jdt/core/tests/dom/ASTConverterAST3Test.java | 2 +- .../jdt/core/tests/dom/ASTConverterTest.java | 2 +- .../jdt/core/tests/dom/ASTConverterTest2.java | 12 ++-- .../jdt/core/tests/dom/ASTConverterTestAST3_2.java | 21 ++++--- .../jdt/core/tests/dom/ASTModelBridgeTests.java | 2 +- .../jdt/core/tests/dom/AbstractASTTests.java | 21 +++++-- .../jdt/core/tests/dom/ConverterTestSetup.java | 11 ++++ 8 files changed, 92 insertions(+), 49 deletions(-) (limited to 'org.eclipse.jdt.core.tests.model/src/org') diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverter15Test.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverter15Test.java index 103e8696ba..a8ab7f65ec 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverter15Test.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverter15Test.java @@ -46,7 +46,7 @@ public class ASTConverter15Test extends ConverterTestSetup { } static { -// TESTS_NUMBERS = new int[] { 284 }; + TESTS_NUMBERS = new int[] { 95, 218, 223, 224, 225, 235, 236, 237, 281 }; // TESTS_RANGE = new int[] { 277, -1 }; // TESTS_NAMES = new String[] {"test0204"}; } @@ -2900,7 +2900,9 @@ public class ASTConverter15Test extends ConverterTestSetup { " }/*end*/\n" + "}", this.workingCopy, - false); + false, + false, + true); IMethodBinding methodBinding = ((MethodDeclaration) node).resolveBinding(); assertNotNull("No binding", methodBinding); assertEquals("LX;.foo(LNonExisting;)V", methodBinding.getKey()); @@ -4186,7 +4188,7 @@ public class ASTConverter15Test extends ConverterTestSetup { */ public void test0139() throws JavaModelException { ICompilationUnit sourceUnit = getCompilationUnit("Converter15" , "src", "test0139", "X.java"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ - ASTNode result = runJLS3Conversion(sourceUnit, true, false); + ASTNode result = runJLS3Conversion(sourceUnit, true, false, true); assertNotNull(result); assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.COMPILATION_UNIT); CompilationUnit compilationUnit = (CompilationUnit) result; @@ -6895,10 +6897,12 @@ public class ASTConverter15Test extends ConverterTestSetup { " */\n" + " @Test private int fXoo;\n" + "}"; - ASTNode node = buildAST( + ASTNode node = buildAST( contents, - this.workingCopy, - false); + this.workingCopy, + false, + false, + true); assertEquals("Not a compilation unit", ASTNode.COMPILATION_UNIT, node.getNodeType()); CompilationUnit unit = (CompilationUnit) node; assertProblemsSize(unit, 1, "Test cannot be resolved to a type"); @@ -6912,9 +6916,9 @@ public class ASTConverter15Test extends ConverterTestSetup { Name name = annotation.getTypeName(); assertEquals("Not a simple name", ASTNode.SIMPLE_NAME, name.getNodeType()); ITypeBinding binding = name.resolveTypeBinding(); - assertNull("Got a binding", binding); + assertNotNull("No binding", binding); IBinding binding2 = name.resolveBinding(); - assertNull("Got a binding", binding2); + assertNotNull("No binding", binding2); IAnnotationBinding annotationBinding = annotation.resolveAnnotationBinding(); assertNotNull("No binding", annotationBinding); assertEquals("LX;.fXoo)I@LTest;", annotationBinding.getKey()); @@ -7074,17 +7078,19 @@ public class ASTConverter15Test extends ConverterTestSetup { * https://bugs.eclipse.org/bugs/show_bug.cgi?id=153303 */ public void test0223() throws JavaModelException { - this.workingCopy = getWorkingCopy("/Converter15/src/X.java", true/*resolve*/); - String contents = - "public class X {\n" + - " @Zork\n" + - " public void foo( ) {\n" + - " }\n" + - "}"; - ASTNode node = buildAST( + this.workingCopy = getWorkingCopy("/Converter15/src/X.java", true/*resolve*/); + String contents = + "public class X {\n" + + " @Zork\n" + + " public void foo( ) {\n" + + " }\n" + + "}"; + ASTNode node = buildAST( contents, - this.workingCopy, - false); + this.workingCopy, + false, + false, + true); assertEquals("Not a compilation unit", ASTNode.COMPILATION_UNIT, node.getNodeType()); CompilationUnit unit = (CompilationUnit) node; assertProblemsSize(unit, 1, "Zork cannot be resolved to a type"); @@ -7108,10 +7114,12 @@ public class ASTConverter15Test extends ConverterTestSetup { "@Zork\n" + "public class X {\n" + "}"; - ASTNode node = buildAST( + ASTNode node = buildAST( contents, - this.workingCopy, - false); + this.workingCopy, + false, + false, + true); assertEquals("Not a compilation unit", ASTNode.COMPILATION_UNIT, node.getNodeType()); CompilationUnit unit = (CompilationUnit) node; assertProblemsSize(unit, 1, "Zork cannot be resolved to a type"); @@ -7139,7 +7147,9 @@ public class ASTConverter15Test extends ConverterTestSetup { ASTNode node = buildAST( contents, this.workingCopy, - false); + false, + false, + true); assertEquals("Not a compilation unit", ASTNode.COMPILATION_UNIT, node.getNodeType()); CompilationUnit unit = (CompilationUnit) node; assertProblemsSize(unit, 1, "Zork cannot be resolved to a type"); @@ -7550,7 +7560,9 @@ public class ASTConverter15Test extends ConverterTestSetup { ASTNode node = buildAST( contents, this.workingCopy, - false); + false, + false, + true); assertEquals("Not a compilation unit", ASTNode.COMPILATION_UNIT, node.getNodeType()); CompilationUnit unit = (CompilationUnit) node; String expectedProblems = "The hierarchy of the type X is inconsistent\n" + @@ -7586,7 +7598,9 @@ public class ASTConverter15Test extends ConverterTestSetup { ASTNode node = buildAST( contents, this.workingCopy, - false); + false, + false, + true); assertEquals("Not a compilation unit", ASTNode.COMPILATION_UNIT, node.getNodeType()); CompilationUnit unit = (CompilationUnit) node; String expectedProblems = "Zork cannot be resolved to a type"; @@ -7618,7 +7632,9 @@ public class ASTConverter15Test extends ConverterTestSetup { ASTNode node = buildAST( contents, this.workingCopy, - false); + false, + false, + true); assertEquals("Not a compilation unit", ASTNode.COMPILATION_UNIT, node.getNodeType()); CompilationUnit unit = (CompilationUnit) node; String expectedProblems = "Zork cannot be resolved to a type"; @@ -9362,7 +9378,9 @@ public class ASTConverter15Test extends ConverterTestSetup { ASTNode node = buildAST( contents, this.workingCopy, - false); + false, + false, + true); assertEquals("Not a compilation unit", ASTNode.COMPILATION_UNIT, node.getNodeType()); CompilationUnit unit = (CompilationUnit) node; assertProblemsSize(unit, 1, "Invalid cannot be resolved to a type"); diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverterAST3Test.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverterAST3Test.java index 2593902c9a..35bbf61a4d 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverterAST3Test.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverterAST3Test.java @@ -6942,7 +6942,7 @@ public class ASTConverterAST3Test extends ConverterTestSetup { */ public void test0295() throws JavaModelException { ICompilationUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0295", "Test.java"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ - ASTNode result = runConversion(AST.JLS3, sourceUnit, true); + ASTNode result = runConversion(AST.JLS3, sourceUnit, true, false, true); assertNotNull("No compilation unit", result); //$NON-NLS-1$ assertTrue("result is not a compilation unit", result instanceof CompilationUnit); //$NON-NLS-1$ CompilationUnit compilationUnit = (CompilationUnit) result; diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverterTest.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverterTest.java index e3e0a067d9..61af3fea21 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverterTest.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverterTest.java @@ -7113,7 +7113,7 @@ public class ASTConverterTest extends ConverterTestSetup { */ public void test0295() throws JavaModelException { ICompilationUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0295", "Test.java"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ - ASTNode result = runConversion(sourceUnit, true); + ASTNode result = runConversion(sourceUnit, true, true); assertNotNull("No compilation unit", result); //$NON-NLS-1$ assertTrue("result is not a compilation unit", result instanceof CompilationUnit); //$NON-NLS-1$ CompilationUnit compilationUnit = (CompilationUnit) result; diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverterTest2.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverterTest2.java index 9436d2bfac..9107604b75 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverterTest2.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverterTest2.java @@ -440,7 +440,7 @@ public class ASTConverterTest2 extends ConverterTestSetup { */ public void test0413() throws JavaModelException { ICompilationUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0413", "A.java"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ - ASTNode result = runConversion(sourceUnit, true); + ASTNode result = runConversion(sourceUnit, true, true); assertTrue("not a compilation unit", result.getNodeType() == ASTNode.COMPILATION_UNIT); //$NON-NLS-1$ CompilationUnit unit = (CompilationUnit) result; assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$ @@ -790,7 +790,7 @@ public class ASTConverterTest2 extends ConverterTestSetup { */ public void test0426() throws JavaModelException { ICompilationUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0426", "A.java"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ - ASTNode result = runConversion(sourceUnit, true); + ASTNode result = runConversion(sourceUnit, true, true); assertTrue("not a compilation unit", result.getNodeType() == ASTNode.COMPILATION_UNIT); //$NON-NLS-1$ CompilationUnit unit = (CompilationUnit) result; assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$< @@ -1030,7 +1030,7 @@ public class ASTConverterTest2 extends ConverterTestSetup { */ public void test0436() throws JavaModelException { ICompilationUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0436", "A.java"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ - ASTNode result = runConversion(sourceUnit, true); + ASTNode result = runConversion(sourceUnit, true, true); assertTrue("not a compilation unit", result.getNodeType() == ASTNode.COMPILATION_UNIT); //$NON-NLS-1$ CompilationUnit unit = (CompilationUnit) result; assertProblemsSize(unit, 1, "The type A.CInner is not visible"); //$NON-NLS-1$ @@ -1056,7 +1056,7 @@ public class ASTConverterTest2 extends ConverterTestSetup { */ public void test0437() throws JavaModelException { ICompilationUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0437", "A.java"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ - ASTNode result = runConversion(sourceUnit, true); + ASTNode result = runConversion(sourceUnit, true, true); assertTrue("not a compilation unit", result.getNodeType() == ASTNode.COMPILATION_UNIT); //$NON-NLS-1$ CompilationUnit unit = (CompilationUnit) result; assertProblemsSize(unit, 1, "The type CInner is not visible"); //$NON-NLS-1$ @@ -1078,7 +1078,7 @@ public class ASTConverterTest2 extends ConverterTestSetup { */ public void test0438() throws JavaModelException { ICompilationUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0438", "D.java"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ - ASTNode result = runConversion(sourceUnit, true); + ASTNode result = runConversion(sourceUnit, true, true); assertTrue("not a compilation unit", result.getNodeType() == ASTNode.COMPILATION_UNIT); //$NON-NLS-1$ CompilationUnit unit = (CompilationUnit) result; assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$< @@ -1094,7 +1094,7 @@ public class ASTConverterTest2 extends ConverterTestSetup { */ public void test0439() throws JavaModelException { ICompilationUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0439", "E.java"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ - ASTNode result = runConversion(sourceUnit, true); + ASTNode result = runConversion(sourceUnit, true, true); assertTrue("not a compilation unit", result.getNodeType() == ASTNode.COMPILATION_UNIT); //$NON-NLS-1$ CompilationUnit unit = (CompilationUnit) result; assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$< diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverterTestAST3_2.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverterTestAST3_2.java index b4f75ea2be..d1119ef0c7 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverterTestAST3_2.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverterTestAST3_2.java @@ -516,7 +516,7 @@ public class ASTConverterTestAST3_2 extends ConverterTestSetup { */ public void test0413() throws JavaModelException { ICompilationUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0413", "A.java"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ - ASTNode result = runConversion(AST.JLS3, sourceUnit, true); + ASTNode result = runConversion(AST.JLS3, sourceUnit, true, false, true); assertTrue("not a compilation unit", result.getNodeType() == ASTNode.COMPILATION_UNIT); //$NON-NLS-1$ CompilationUnit unit = (CompilationUnit) result; assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$ @@ -866,7 +866,7 @@ public class ASTConverterTestAST3_2 extends ConverterTestSetup { */ public void test0426() throws JavaModelException { ICompilationUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0426", "A.java"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ - ASTNode result = runConversion(AST.JLS3, sourceUnit, true); + ASTNode result = runConversion(AST.JLS3, sourceUnit, true, false, true); assertTrue("not a compilation unit", result.getNodeType() == ASTNode.COMPILATION_UNIT); //$NON-NLS-1$ CompilationUnit unit = (CompilationUnit) result; assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$< @@ -1106,7 +1106,7 @@ public class ASTConverterTestAST3_2 extends ConverterTestSetup { */ public void test0436() throws JavaModelException { ICompilationUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0436", "A.java"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ - ASTNode result = runConversion(AST.JLS3, sourceUnit, true); + ASTNode result = runConversion(AST.JLS3, sourceUnit, true, false, true); assertTrue("not a compilation unit", result.getNodeType() == ASTNode.COMPILATION_UNIT); //$NON-NLS-1$ CompilationUnit unit = (CompilationUnit) result; assertProblemsSize(unit, 1, "The type A.CInner is not visible"); //$NON-NLS-1$ @@ -1132,7 +1132,7 @@ public class ASTConverterTestAST3_2 extends ConverterTestSetup { */ public void test0437() throws JavaModelException { ICompilationUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0437", "A.java"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ - ASTNode result = runConversion(AST.JLS3, sourceUnit, true); + ASTNode result = runConversion(AST.JLS3, sourceUnit, true, false, true); assertTrue("not a compilation unit", result.getNodeType() == ASTNode.COMPILATION_UNIT); //$NON-NLS-1$ CompilationUnit unit = (CompilationUnit) result; assertProblemsSize(unit, 1, "The type CInner is not visible"); //$NON-NLS-1$ @@ -1154,7 +1154,7 @@ public class ASTConverterTestAST3_2 extends ConverterTestSetup { */ public void test0438() throws JavaModelException { ICompilationUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0438", "D.java"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ - ASTNode result = runConversion(AST.JLS3, sourceUnit, true); + ASTNode result = runConversion(AST.JLS3, sourceUnit, true, false, true); assertTrue("not a compilation unit", result.getNodeType() == ASTNode.COMPILATION_UNIT); //$NON-NLS-1$ CompilationUnit unit = (CompilationUnit) result; assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$< @@ -1170,7 +1170,7 @@ public class ASTConverterTestAST3_2 extends ConverterTestSetup { */ public void test0439() throws JavaModelException { ICompilationUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0439", "E.java"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ - ASTNode result = runConversion(AST.JLS3, sourceUnit, true); + ASTNode result = runConversion(AST.JLS3, sourceUnit, true, false, true); assertTrue("not a compilation unit", result.getNodeType() == ASTNode.COMPILATION_UNIT); //$NON-NLS-1$ CompilationUnit unit = (CompilationUnit) result; assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$< @@ -6563,7 +6563,9 @@ public class ASTConverterTestAST3_2 extends ConverterTestSetup { ASTNode node = buildAST( contents, workingCopy, - false); + false, + false, + true); assertEquals("Not a compilation unit", ASTNode.COMPILATION_UNIT, node.getNodeType()); CompilationUnit unit = (CompilationUnit) node; assertProblemsSize(unit, 1, "Zork cannot be resolved to a type"); @@ -6597,12 +6599,12 @@ public class ASTConverterTestAST3_2 extends ConverterTestSetup { Expression expression2 = (Expression) arguments.get(0); ITypeBinding typeBinding = expression2.resolveTypeBinding(); assertNotNull("No binding", typeBinding); - assertEquals("LX;.foo(Z)V#z", binding.getKey()); + assertEquals("LX;.foo(Z)V#z", binding.getKey()); assertEquals("Not a simple name", ASTNode.SIMPLE_NAME, expression2.getNodeType()); SimpleName simpleName = (SimpleName) expression2; IBinding binding2 = simpleName.resolveBinding(); assertNotNull("Got a binding", binding2); - assertEquals("LX;.foo(Z)V#z", binding2.getKey()); + assertEquals("LX;.foo(Z)V#z", binding2.getKey()); } finally { if (workingCopy != null) workingCopy.discardWorkingCopy(); @@ -8342,6 +8344,7 @@ public class ASTConverterTestAST3_2 extends ConverterTestSetup { ASTParser parser = ASTParser.newParser(AST.JLS3); parser.setKind(ASTParser.K_COMPILATION_UNIT); parser.setStatementsRecovery(true); + parser.setBindingsRecovery(true); String source ="package java.lang;\n" + "public class Object {\n" + " public String toString() {\n" + diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTModelBridgeTests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTModelBridgeTests.java index 5c69710053..e9b3b402a1 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTModelBridgeTests.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTModelBridgeTests.java @@ -1659,7 +1659,7 @@ public class ASTModelBridgeTests extends AbstractASTTests { ); ICompilationUnit cu = getCompilationUnit("/P/src/Test.java"); - ASTNode node = buildAST(null/*use existing contents*/, cu, false/*don't report errors*/, true/*statement recovery*/); + ASTNode node = buildAST(null/*use existing contents*/, cu, false/*don't report errors*/, true/*statement recovery*/, false); IBinding binding = ((MethodDeclaration) node).resolveBinding(); assertNotNull("No binding", binding); IJavaElement element = binding.getJavaElement(); diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/AbstractASTTests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/AbstractASTTests.java index 63975162ce..b84f46b2c9 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/AbstractASTTests.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/AbstractASTTests.java @@ -332,11 +332,17 @@ public class AbstractASTTests extends ModifyingResourceTests implements DefaultM * by "*start*" and "*end*". */ protected ASTNode buildAST(String newContents, ICompilationUnit cu, boolean reportErrors) throws JavaModelException { - return buildAST(newContents, cu, reportErrors, false/*no statement recovery*/); + return buildAST(newContents, cu, reportErrors, false/*no statement recovery*/, false); } + protected ASTNode buildAST(String newContents, ICompilationUnit cu, boolean reportErrors, boolean enableStatementRecovery, boolean bindingRecovery) throws JavaModelException { + ASTNode[] nodes = buildASTs(newContents, cu, reportErrors, enableStatementRecovery, bindingRecovery); + if (nodes.length == 0) return null; + return nodes[0]; + } + protected ASTNode buildAST(String newContents, ICompilationUnit cu, boolean reportErrors, boolean enableStatementRecovery) throws JavaModelException { - ASTNode[] nodes = buildASTs(newContents, cu, reportErrors, enableStatementRecovery); + ASTNode[] nodes = buildASTs(newContents, cu, reportErrors, enableStatementRecovery, false); if (nodes.length == 0) return null; return nodes[0]; } @@ -398,10 +404,10 @@ public class AbstractASTTests extends ModifyingResourceTests implements DefaultM * For each of the pairs, returns the AST node that was delimited by "*start?*" and "*end?*". */ protected ASTNode[] buildASTs(String newContents, ICompilationUnit cu, boolean reportErrors) throws JavaModelException { - return buildASTs(newContents, cu, reportErrors, false); + return buildASTs(newContents, cu, reportErrors, false, false); } - protected ASTNode[] buildASTs(String newContents, ICompilationUnit cu, boolean reportErrors, boolean enableStatementRecovery) throws JavaModelException { + protected ASTNode[] buildASTs(String newContents, ICompilationUnit cu, boolean reportErrors, boolean enableStatementRecovery, boolean bindingRecovery) throws JavaModelException { MarkerInfo markerInfo; if (newContents == null) { markerInfo = new MarkerInfo(cu.getSource()); @@ -413,7 +419,11 @@ public class AbstractASTTests extends ModifyingResourceTests implements DefaultM CompilationUnit unit; if (cu.isWorkingCopy()) { cu.getBuffer().setContents(newContents); - unit = cu.reconcile(AST.JLS3, reportErrors, enableStatementRecovery, null, null); + int flags = 0; + if (reportErrors) flags |= ICompilationUnit.FORCE_PROBLEM_DETECTION; + if (enableStatementRecovery) flags |= ICompilationUnit.ENABLE_STATEMENTS_RECOVERY; + if (bindingRecovery) flags |= ICompilationUnit.ENABLE_BINDINGS_RECOVERY; + unit = cu.reconcile(AST.JLS3, flags, null, null); } else { IBuffer buffer = cu.getBuffer(); buffer.setContents(newContents); @@ -423,6 +433,7 @@ public class AbstractASTTests extends ModifyingResourceTests implements DefaultM parser.setSource(cu); parser.setResolveBindings(true); parser.setStatementsRecovery(enableStatementRecovery); + parser.setBindingsRecovery(bindingRecovery); unit = (CompilationUnit) parser.createAST(null); } diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ConverterTestSetup.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ConverterTestSetup.java index 260f50f6e5..29055dfb1d 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ConverterTestSetup.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ConverterTestSetup.java @@ -112,6 +112,11 @@ public abstract class ConverterTestSetup extends AbstractASTTests { } } + public ASTNode runConversion(ICompilationUnit unit, boolean resolveBindings, + boolean bindingsRecovery) { + return runConversion(astInternalJLS2(), unit, resolveBindings, false, bindingsRecovery); + } + public ASTNode runConversion(ICompilationUnit unit, boolean resolveBindings) { return runConversion(astInternalJLS2(), unit, resolveBindings); } @@ -403,6 +408,10 @@ public abstract class ConverterTestSetup extends AbstractASTTests { } public ASTNode runJLS3Conversion(ICompilationUnit unit, boolean resolveBindings, boolean checkJLS2) { + return runJLS3Conversion(unit, resolveBindings, checkJLS2, false); + } + + public ASTNode runJLS3Conversion(ICompilationUnit unit, boolean resolveBindings, boolean checkJLS2, boolean bindingRecovery) { // Create parser ASTParser parser; @@ -410,12 +419,14 @@ public abstract class ConverterTestSetup extends AbstractASTTests { parser = ASTParser.newParser(astInternalJLS2()); parser.setSource(unit); parser.setResolveBindings(resolveBindings); + parser.setBindingsRecovery(bindingRecovery); parser.createAST(null); } parser = ASTParser.newParser(AST.JLS3); parser.setSource(unit); parser.setResolveBindings(resolveBindings); + parser.setBindingsRecovery(bindingRecovery); // Parse compilation unit ASTNode result = parser.createAST(null); -- cgit v1.2.3