Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJay Arthanareeswaran2020-05-28 06:19:09 +0000
committerJay Arthanareeswaran2020-05-29 15:46:43 +0000
commit20593908fba81601b46d2576abde81781d2bc542 (patch)
tree5fa1497b98a4eea7c9bd2bf80fc5ce70dc20a0c1
parent90ae3ae71788fb03107dcd6c2ebc39d5c3f00108 (diff)
downloadeclipse.jdt.core-20593908fba81601b46d2576abde81781d2bc542.tar.gz
eclipse.jdt.core-20593908fba81601b46d2576abde81781d2bc542.tar.xz
eclipse.jdt.core-20593908fba81601b46d2576abde81781d2bc542.zip
Bug 563622 - [14] Using Enclosing type in Record wizard fails to createI20200601-0140I20200531-1800I20200531-0600I20200530-0600
record Change-Id: I0affb685c831a633601f2631e349ef6a578fecc4 Signed-off-by: Jay Arthanareeswaran <jarthana@in.ibm.com>
-rw-r--r--org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/BaseProcessorEnv.java11
-rw-r--r--org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/ReadAnnotationTests2.java2
-rw-r--r--org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverter13Test.java2
-rw-r--r--org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/AbstractJavaModelTests.java1
-rw-r--r--org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/CompilationUnitTests.java2
-rw-r--r--org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/CreateMembersTests.java53
-rw-r--r--org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/ReconcilerTests9.java2
-rw-r--r--org.eclipse.jdt.core.tests.model/workspace/CreateMembers/src/Outer.java2
-rw-r--r--org.eclipse.jdt.core.tests.performance/src/org/eclipse/jdt/core/tests/performance/SecondaryTypesPerformanceTest.java2
-rw-r--r--org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/AST.java1
-rw-r--r--org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/rewrite/ImportRewrite.java2
-rw-r--r--org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/SpacePreparator.java1
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/CreateElementInCUOperation.java2
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/CreateTypeMemberOperation.java4
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/DeleteElementsOperation.java2
15 files changed, 73 insertions, 16 deletions
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/BaseProcessorEnv.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/BaseProcessorEnv.java
index 26fad6e88d..e0b7dab71c 100644
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/BaseProcessorEnv.java
+++ b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/BaseProcessorEnv.java
@@ -85,8 +85,9 @@ import com.sun.mirror.util.Types;
*/
public class BaseProcessorEnv implements AnnotationProcessorEnvironment
{
+ private static final int JLS_LATEST = AST.JLS14;
static{
- final AST ast = AST.newAST(AST.JLS13, true);
+ final AST ast = AST.newAST(JLS_LATEST, true);
EMPTY_AST_UNIT = ast.newCompilationUnit();
}
public static final CompilationUnit EMPTY_AST_UNIT;
@@ -508,7 +509,7 @@ public class BaseProcessorEnv implements AnnotationProcessorEnvironment
}
final BindingRequestor requestor = new BindingRequestor();
- final ASTParser parser = ASTParser.newParser(AST.JLS13);
+ final ASTParser parser = ASTParser.newParser(JLS_LATEST);
parser.setResolveBindings(true);
parser.setBindingsRecovery(true);
parser.setProject(_javaProject);
@@ -719,7 +720,7 @@ public class BaseProcessorEnv implements AnnotationProcessorEnvironment
if( astUnit != null ) return astUnit;
else{
// Note: very expensive operation. we are re-compiling a file with binding information.
- final ASTParser parser = ASTParser.newParser(AST.JLS13);
+ final ASTParser parser = ASTParser.newParser(JLS_LATEST);
parser.setResolveBindings(true);
parser.setBindingsRecovery(true);
parser.setSource(unit);
@@ -868,7 +869,7 @@ public class BaseProcessorEnv implements AnnotationProcessorEnvironment
String bogusKey = BindingKey.createTypeBindingKey("java.lang.Object"); //$NON-NLS-1$
String[] keys = new String[] {bogusKey};
- ASTParser p = ASTParser.newParser( AST.JLS13 );
+ ASTParser p = ASTParser.newParser( JLS_LATEST );
p.setResolveBindings(true);
p.setBindingsRecovery(true);
p.setProject( javaProject );
@@ -898,7 +899,7 @@ public class BaseProcessorEnv implements AnnotationProcessorEnvironment
}
CompilationUnitRequestor requestor = new CompilationUnitRequestor();
- ASTParser p = ASTParser.newParser( AST.JLS13 );
+ ASTParser p = ASTParser.newParser( JLS_LATEST );
p.setResolveBindings(true);
p.setBindingsRecovery(true);
p.setProject( javaProject );
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/ReadAnnotationTests2.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/ReadAnnotationTests2.java
index 0e787221cd..a57a7d2222 100644
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/ReadAnnotationTests2.java
+++ b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/ReadAnnotationTests2.java
@@ -187,7 +187,7 @@ public class ReadAnnotationTests2 extends BuilderTests {
}
final BindingRequestor requestor = new BindingRequestor();
- final ASTParser parser = ASTParser.newParser(AST.JLS13);
+ final ASTParser parser = ASTParser.newParser(AST.JLS14);
parser.setResolveBindings(true);
parser.setProject(javaProj);
parser.setIgnoreMethodBodies(true);
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverter13Test.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverter13Test.java
index fde8f08976..2a99de1e3a 100644
--- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverter13Test.java
+++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverter13Test.java
@@ -68,6 +68,7 @@ public class ASTConverter13Test extends ConverterTestSetup {
return buildModelTestSuite(ASTConverter13Test.class);
}
+ @SuppressWarnings("deprecation")
static int getAST13() {
return AST.JLS13;
}
@@ -398,6 +399,7 @@ public class ASTConverter13Test extends ConverterTestSetup {
}
}
// Moved over from ASTConverter9Test
+ @SuppressWarnings("deprecation")
public void _testBug531714_015() throws CoreException {
// saw NPE in SwitchExpression.resolveType(SwitchExpression.java:423)
if (!isJRE13) {
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/AbstractJavaModelTests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/AbstractJavaModelTests.java
index be683c5bcd..8b0968a2ab 100644
--- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/AbstractJavaModelTests.java
+++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/AbstractJavaModelTests.java
@@ -156,6 +156,7 @@ public abstract class AbstractJavaModelTests extends SuiteOfTestCases {
/**
* Internal synonym for constant AST.JSL13
* to alleviate deprecation warnings once AST.JLS13 is deprecated in future.
+ * @deprecated
*/
protected static final int AST_INTERNAL_JLS13 = AST.JLS13;
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/CompilationUnitTests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/CompilationUnitTests.java
index 2d3db19d74..0ae07590b1 100644
--- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/CompilationUnitTests.java
+++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/CompilationUnitTests.java
@@ -61,7 +61,7 @@ public void setUpSuite() throws Exception {
super.setUpSuite();
final String compliance = "1.5"; //$NON-NLS-1$
- this.testProject = createJavaProject("P", new String[] {"src"}, new String[] {getExternalJCLPathString(compliance)}, "bin", compliance); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ this.testProject = createJavaProject("P", new String[] {"src"}, new String[] {"JCL15_LIB"}, "bin", compliance); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
createFolder("/P/src/p");
createFile(
"/P/src/p/X.java",
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/CreateMembersTests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/CreateMembersTests.java
index 4c1f690843..f84241d7fd 100644
--- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/CreateMembersTests.java
+++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/CreateMembersTests.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2020 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -18,8 +18,10 @@ import junit.framework.Test;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.jdt.core.ICompilationUnit;
import org.eclipse.jdt.core.IField;
+import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.IMethod;
import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.core.JavaModelException;
public class CreateMembersTests extends AbstractJavaModelTests {
@@ -43,7 +45,7 @@ public class CreateMembersTests extends AbstractJavaModelTests {
@Override
public void setUpSuite() throws Exception {
super.setUpSuite();
- setUpJavaProject("CreateMembers", "1.5");
+ setUpJavaProject("CreateMembers", "14");
}
@Override
public void tearDownSuite() throws Exception {
@@ -171,4 +173,51 @@ public class CreateMembersTests extends AbstractJavaModelTests {
"Invalid sibling: E1 [in E [in E.java [in <default> [in src [in CreateMembers]]]]]",
expected);
}
+ public void testBug563622_1() throws JavaModelException {
+ IJavaProject javaProject = getJavaProject("CreateMembers");
+ String old = javaProject.getOption(JavaCore.COMPILER_PB_ENABLE_PREVIEW_FEATURES, true);
+ javaProject.setOption(JavaCore.COMPILER_PB_ENABLE_PREVIEW_FEATURES, JavaCore.ENABLED);
+ try {
+ ICompilationUnit compilationUnit = getCompilationUnit("CreateMembers", "src", "", "Outer.java");
+ assertNotNull("No compilation unit", compilationUnit);
+ IType[] types = compilationUnit.getTypes();
+ assertNotNull("No types", types);
+ assertEquals("Wrong size", 1, types.length);
+ IType type = types[0];
+ type.createType("record Point() {}", null, true, null);
+ String expectedSource =
+ "public class Outer {\n" +
+ "\n" +
+ " record Point() {}\n" +
+ "}";
+ assertSourceEquals("Unexpected source", expectedSource, type.getSource());
+ } finally {
+ javaProject.setOption(JavaCore.COMPILER_PB_ENABLE_PREVIEW_FEATURES, old);
+ }
+ }
+ public void testBug563622_2() throws JavaModelException {
+ IJavaProject javaProject = getJavaProject("CreateMembers");
+ String old = javaProject.getOption(JavaCore.COMPILER_PB_ENABLE_PREVIEW_FEATURES, true);
+ javaProject.setOption(JavaCore.COMPILER_PB_ENABLE_PREVIEW_FEATURES, JavaCore.DISABLED);
+ JavaModelException expected = null;
+ try {
+ ICompilationUnit compilationUnit = getCompilationUnit("CreateMembers", "src", "", "Outer.java");
+ assertNotNull("No compilation unit", compilationUnit);
+ IType[] types = compilationUnit.getTypes();
+ assertNotNull("No types", types);
+ assertEquals("Wrong size", 1, types.length);
+ IType type = types[0];
+ try {
+ type.createType("record Point() {}", null, true, null);
+ } catch (JavaModelException e) {
+ expected = e;
+ }
+ assertExceptionEquals(
+ "Unexpected exception",
+ "Invalid contents specified",
+ expected);
+ } finally {
+ javaProject.setOption(JavaCore.COMPILER_PB_ENABLE_PREVIEW_FEATURES, old);
+ }
+ }
}
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/ReconcilerTests9.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/ReconcilerTests9.java
index 75f3d628dc..355c4427ed 100644
--- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/ReconcilerTests9.java
+++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/ReconcilerTests9.java
@@ -43,7 +43,7 @@ public class ReconcilerTests9 extends ModifyingResourceTests {
protected ICompilationUnit workingCopy;
protected ProblemRequestor problemRequestor;
- /*package*/ static final int JLS_LATEST = AST.JLS13;
+ /*package*/ static final int JLS_LATEST = AST.JLS14;
/**
*/
diff --git a/org.eclipse.jdt.core.tests.model/workspace/CreateMembers/src/Outer.java b/org.eclipse.jdt.core.tests.model/workspace/CreateMembers/src/Outer.java
new file mode 100644
index 0000000000..2b076f3923
--- /dev/null
+++ b/org.eclipse.jdt.core.tests.model/workspace/CreateMembers/src/Outer.java
@@ -0,0 +1,2 @@
+public class Outer {
+} \ No newline at end of file
diff --git a/org.eclipse.jdt.core.tests.performance/src/org/eclipse/jdt/core/tests/performance/SecondaryTypesPerformanceTest.java b/org.eclipse.jdt.core.tests.performance/src/org/eclipse/jdt/core/tests/performance/SecondaryTypesPerformanceTest.java
index 819138b2c3..48d06f7016 100644
--- a/org.eclipse.jdt.core.tests.performance/src/org/eclipse/jdt/core/tests/performance/SecondaryTypesPerformanceTest.java
+++ b/org.eclipse.jdt.core.tests.performance/src/org/eclipse/jdt/core/tests/performance/SecondaryTypesPerformanceTest.java
@@ -84,7 +84,7 @@ public class SecondaryTypesPerformanceTest extends PerformanceTestCase {
classpathList.add(testScratchArea);
for (int i = 0; i<10; ++i) {
- ASTParser parser = ASTParser.newParser(AST.JLS13);
+ ASTParser parser = ASTParser.newParser(AST.JLS14);
parser.setResolveBindings(true);
parser.setStatementsRecovery(true);
parser.setBindingsRecovery(true);
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/AST.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/AST.java
index 6a5ef3dfcd..657b0ef602 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/AST.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/AST.java
@@ -311,6 +311,7 @@ public final class AST {
* </p>
*
* @since 3.20
+ * @deprecated Clients should use the {@link #JLS_Latest} AST API instead.
*/
public static final int JLS13 = 13;
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/rewrite/ImportRewrite.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/rewrite/ImportRewrite.java
index 9378d3ba7f..2e423f8145 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/rewrite/ImportRewrite.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/rewrite/ImportRewrite.java
@@ -1315,7 +1315,7 @@ public final class ImportRewrite {
CompilationUnit usedAstRoot= this.astRoot;
if (usedAstRoot == null) {
- ASTParser parser= ASTParser.newParser(AST.JLS13);
+ ASTParser parser= ASTParser.newParser(AST.JLS14);
parser.setSource(this.compilationUnit);
parser.setFocalPosition(0); // reduced AST
parser.setResolveBindings(false);
diff --git a/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/SpacePreparator.java b/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/SpacePreparator.java
index fe715a3729..32b7bf7c35 100644
--- a/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/SpacePreparator.java
+++ b/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/SpacePreparator.java
@@ -435,6 +435,7 @@ public class SpacePreparator extends ASTVisitor {
return true;
}
+ @SuppressWarnings("deprecation")
@Override
public boolean visit(SwitchCase node) {
if (node.getAST().apiLevel() > AST.JLS13 && node.isSwitchLabeledRule()) {
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/CreateElementInCUOperation.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/CreateElementInCUOperation.java
index d277903abd..d1635908a7 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/CreateElementInCUOperation.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/CreateElementInCUOperation.java
@@ -267,7 +267,7 @@ public abstract class CreateElementInCUOperation extends JavaModelOperation {
// ensure cu is consistent (noop if already consistent)
cu.makeConsistent(this.progressMonitor);
// create an AST for the compilation unit
- ASTParser parser = ASTParser.newParser(AST.JLS13);
+ ASTParser parser = ASTParser.newParser(AST.JLS14);
parser.setSource(cu);
return (CompilationUnit) parser.createAST(this.progressMonitor);
}
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/CreateTypeMemberOperation.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/CreateTypeMemberOperation.java
index 68b331de0b..3f48fc7c66 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/CreateTypeMemberOperation.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/CreateTypeMemberOperation.java
@@ -83,7 +83,7 @@ protected StructuralPropertyDescriptor getChildPropertyDescriptor(ASTNode parent
protected ASTNode generateElementAST(ASTRewrite rewriter, ICompilationUnit cu) throws JavaModelException {
if (this.createdNode == null) {
this.source = removeIndentAndNewLines(this.source, cu);
- ASTParser parser = ASTParser.newParser(AST.JLS13);
+ ASTParser parser = ASTParser.newParser(AST.JLS14);
parser.setSource(this.source.toCharArray());
parser.setProject(getCompilationUnit().getJavaProject());
parser.setKind(ASTParser.K_CLASS_BODY_DECLARATIONS);
@@ -170,7 +170,7 @@ protected String generateSyntaxIncorrectAST() {
buff.append(lineSeparator + " public class A {" + lineSeparator); //$NON-NLS-1$
buff.append(this.source);
buff.append(lineSeparator).append('}');
- ASTParser parser = ASTParser.newParser(AST.JLS13);
+ ASTParser parser = ASTParser.newParser(AST.JLS14);
parser.setSource(buff.toString().toCharArray());
CompilationUnit compilationUnit = (CompilationUnit) parser.createAST(null);
TypeDeclaration typeDeclaration = (TypeDeclaration) compilationUnit.types().iterator().next();
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/DeleteElementsOperation.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/DeleteElementsOperation.java
index a5a61f1e4f..c119a55d24 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/DeleteElementsOperation.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/DeleteElementsOperation.java
@@ -84,7 +84,7 @@ public class DeleteElementsOperation extends MultiOperation {
}
private void initASTParser() {
- this.parser = ASTParser.newParser(AST.JLS13);
+ this.parser = ASTParser.newParser(AST.JLS14);
}
/**

Back to the top