diff options
author | Sarika Sinha | 2020-01-31 09:46:13 +0000 |
---|---|---|
committer | Sarika Sinha | 2020-02-13 04:19:41 +0000 |
commit | 837fc6117452521c22faca53a84b66d3747ac101 (patch) | |
tree | 8dbdc07db60c23265b7588d0debe6b6ba804a7db | |
parent | 600900529636dc1ed1e9fbf3d9b122a2e82115d0 (diff) | |
download | eclipse.jdt.core-837fc6117452521c22faca53a84b66d3747ac101.tar.gz eclipse.jdt.core-837fc6117452521c22faca53a84b66d3747ac101.tar.xz eclipse.jdt.core-837fc6117452521c22faca53a84b66d3747ac101.zip |
Change-Id: I247b7fcfc775ec74cb8e6c60f8ed6f45279f2ed5
4 files changed, 140 insertions, 42 deletions
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverter14Test.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverter14Test.java index f4e6aa7c56..48bc0f504a 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverter14Test.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverter14Test.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2019 IBM Corporation and others. + * Copyright (c) 2019, 2020 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -21,6 +21,7 @@ import java.util.List; import org.eclipse.core.runtime.CoreException; import org.eclipse.jdt.core.ICompilationUnit; import org.eclipse.jdt.core.IJavaProject; +import org.eclipse.jdt.core.JavaCore; import org.eclipse.jdt.core.JavaModelException; import org.eclipse.jdt.core.compiler.IProblem; import org.eclipse.jdt.core.dom.AST; @@ -56,6 +57,11 @@ public class ASTConverter14Test extends ConverterTestSetup { public void setUpSuite() throws Exception { super.setUpSuite(); this.ast = AST.newAST(getAST14(), false); + if (this.ast.apiLevel() == AST.JLS14 ) { + this.currentProject.setOption(JavaCore.COMPILER_COMPLIANCE, JavaCore.VERSION_14); + this.currentProject.setOption(JavaCore.COMPILER_SOURCE, JavaCore.VERSION_14); + this.currentProject.setOption(JavaCore.COMPILER_CODEGEN_TARGET_PLATFORM, JavaCore.VERSION_14); + } } public ASTConverter14Test(String name) { @@ -605,41 +611,137 @@ public class ASTConverter14Test extends ConverterTestSetup { assertEquals("wrong line number", 9, compilationUnit.getLineNumber(node.getStartPosition())); } - public void _test0011() throws CoreException { - // saw NPE in SwitchExpression.resolveType(SwitchExpression.java:423) - if (!isJRE14) { - System.err.println("Test "+getName()+" requires a JRE 14"); - return; - } - String source = - "public class Switch {\n" + - " public static void main(String[] args) {\n" + - " foo(Day.TUESDAY);\n" + - " }\n" + - "\n" + - " private static void foo(Day day) {\n" + - " switch (day) {\n" + - " case SUNDAY, MONDAY, FRIDAY -> System.out.println(6);\n" + - " case TUESDAY -> System.out.println(7);\n" + - " case THURSDAY, SATURDAY -> System.out.println(8);\n" + - " }\n" + - " }\n" + - "}\n" + - "\n" + - "enum Day {\n" + - " MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY;\n" + - "}\n"; - this.workingCopy = getWorkingCopy("/Converter14/src/Switch.java", true/*resolve*/); - try { - buildAST( - source, - this.workingCopy); - } catch(UnsupportedOperationException e) { - fail("Should not throw UnsupportedOperationException"); - } catch(AssertionFailedError e) { - e.printStackTrace(); - return; - } + public void _test0011() throws CoreException { + // saw NPE in SwitchExpression.resolveType(SwitchExpression.java:423) + if (!isJRE14) { + System.err.println("Test "+getName()+" requires a JRE 14"); + return; + } + String source = + "public class Switch {\n" + + " public static void main(String[] args) {\n" + + " foo(Day.TUESDAY);\n" + + " }\n" + + "\n" + + " private static void foo(Day day) {\n" + + " switch (day) {\n" + + " case SUNDAY, MONDAY, FRIDAY -> System.out.println(6);\n" + + " case TUESDAY -> System.out.println(7);\n" + + " case THURSDAY, SATURDAY -> System.out.println(8);\n" + + " }\n" + + " }\n" + + "}\n" + + "\n" + + "enum Day {\n" + + " MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY;\n" + + "}\n"; + this.workingCopy = getWorkingCopy("/Converter14/src/Switch.java", true/*resolve*/); + try { + buildAST( + source, + this.workingCopy); + } catch(UnsupportedOperationException e) { + fail("Should not throw UnsupportedOperationException"); + } catch(AssertionFailedError e) { + e.printStackTrace(); + return; + } + } + + public void testRecord001() throws CoreException { + if (!isJRE14) { + System.err.println("Test "+getName()+" requires a JRE 14"); + return; + } + String contents = + "public record X() {\n" + + " public X {\n" + + " System.out.println(\"no error\");\n" + + " }\n" + + "\n" + + "}\n"; + this.workingCopy = getWorkingCopy("/Converter14/src/X.java", true/*resolve*/); + IJavaProject javaProject = this.workingCopy.getJavaProject(); + String old = javaProject.getOption(JavaCore.COMPILER_PB_ENABLE_PREVIEW_FEATURES, true); + try { + javaProject.setOption(JavaCore.COMPILER_PB_ENABLE_PREVIEW_FEATURES, JavaCore.ENABLED); + javaProject.setOption(JavaCore.COMPILER_PB_REPORT_PREVIEW_FEATURES, JavaCore.IGNORE); + ASTNode node = buildAST( + contents, + this.workingCopy); + assertEquals("Not a compilation unit", ASTNode.COMPILATION_UNIT, node.getNodeType()); + CompilationUnit compilationUnit = (CompilationUnit) node; + assertProblemsSize(compilationUnit, 0); + } finally { + javaProject.setOption(JavaCore.COMPILER_PB_ENABLE_PREVIEW_FEATURES, old); + } + } + + public void testRecord002() throws CoreException { + if (!isJRE14) { + System.err.println("Test "+getName()+" requires a JRE 14"); + return; } + String contents = + "public record X(int param1, int param2) {\n" + + " public X {\n" + + " if (param1 > 5) {\n" + + " System.out.println(\"error\");\n" + + " }\n" + + " }\n" + + "\n" + + "}\n"; + this.workingCopy = getWorkingCopy("/Converter14/src/X.java", true/*resolve*/); + IJavaProject javaProject = this.workingCopy.getJavaProject(); + String old = javaProject.getOption(JavaCore.COMPILER_PB_ENABLE_PREVIEW_FEATURES, true); + try { + javaProject.setOption(JavaCore.COMPILER_PB_ENABLE_PREVIEW_FEATURES, JavaCore.ENABLED); + javaProject.setOption(JavaCore.COMPILER_PB_REPORT_PREVIEW_FEATURES, JavaCore.IGNORE); + ASTNode node = buildAST( + contents, + this.workingCopy); + assertEquals("Not a compilation unit", ASTNode.COMPILATION_UNIT, node.getNodeType()); + CompilationUnit compilationUnit = (CompilationUnit) node; + assertProblemsSize(compilationUnit, 0); + } finally { + javaProject.setOption(JavaCore.COMPILER_PB_ENABLE_PREVIEW_FEATURES, old); + } + } + + public void testRecord003() throws CoreException { + if (!isJRE14) { + System.err.println("Test "+getName()+" requires a JRE 14"); + return; + } + String contents = + "public record X(int param1, int param2) {\n" + + " public X {\n" + + " if (param1 > 5) {\n" + + " System.out.println(\"error\");\n" + + " }\n" + + " }\n" + + "\n" + + " public X(int a) {\n" + + " this.param1 = 6;\n" + + " this.param2 = 16;\n" + + " a = 6;\n" + + " }\n" + + "}\n"; + this.workingCopy = getWorkingCopy("/Converter14/src/X.java", true/*resolve*/); + IJavaProject javaProject = this.workingCopy.getJavaProject(); + String old = javaProject.getOption(JavaCore.COMPILER_PB_ENABLE_PREVIEW_FEATURES, true); + try { + javaProject.setOption(JavaCore.COMPILER_PB_ENABLE_PREVIEW_FEATURES, JavaCore.ENABLED); + javaProject.setOption(JavaCore.COMPILER_PB_REPORT_PREVIEW_FEATURES, JavaCore.IGNORE); + ASTNode node = buildAST( + contents, + this.workingCopy); + assertEquals("Not a compilation unit", ASTNode.COMPILATION_UNIT, node.getNodeType()); + CompilationUnit compilationUnit = (CompilationUnit) node; + assertProblemsSize(compilationUnit, 0); + } 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/dom/ConverterTestSetup.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ConverterTestSetup.java index 30dfea0692..9871b88a1f 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 @@ -204,7 +204,7 @@ public abstract class ConverterTestSetup extends AbstractASTTests { } } else if ("14".equals(compliance)) { if (JavaCore.getClasspathVariable("CONVERTER_JCL14_LIB") == null) { - setupExternalJCL("converterJclMin13"); + setupExternalJCL("converterJclMin14"); JavaCore.setClasspathVariables( new String[] {"CONVERTER_JCL14_LIB", "CONVERTER_JCL14_SRC", "CONVERTER_JCL14_SRCROOT"}, new IPath[] {getConverterJCLPath("14"), getConverterJCLSourcePath("14"), getConverterJCLRootSourcePath()}, 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 ede2130382..1650782e46 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 @@ -3208,10 +3208,6 @@ public abstract class AbstractJavaModelTests extends SuiteOfTestCases { javaProject.setOption(JavaCore.COMPILER_PB_FIELD_HIDING, JavaCore.IGNORE); javaProject.setOption(JavaCore.COMPILER_PB_LOCAL_VARIABLE_HIDING, JavaCore.IGNORE); javaProject.setOption(JavaCore.COMPILER_PB_TYPE_PARAMETER_HIDING, JavaCore.IGNORE); - if (compliance.equals("14")) { - javaProject.setOption(JavaCore.COMPILER_PB_ENABLE_PREVIEW_FEATURES, JavaCore.ENABLED); - javaProject.setOption(JavaCore.COMPILER_PB_REPORT_PREVIEW_FEATURES, JavaCore.IGNORE); - } return javaProject; } protected void setUpProjectCompliance(IJavaProject javaProject, String compliance) throws JavaModelException, IOException { diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/rewrite/describing/ASTRewritingStatementsTest.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/rewrite/describing/ASTRewritingStatementsTest.java index c1083ce4be..836f3b7d95 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/rewrite/describing/ASTRewritingStatementsTest.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/rewrite/describing/ASTRewritingStatementsTest.java @@ -111,7 +111,7 @@ public class ASTRewritingStatementsTest extends ASTRewritingTest { @Override protected void setUp() throws Exception { super.setUp(); - if (this.apiLevel == AST.JLS13 ) { + if (this.apiLevel == AST.JLS14 ) { this.project1.setOption(JavaCore.COMPILER_PB_ENABLE_PREVIEW_FEATURES, JavaCore.ENABLED); this.project1.setOption(JavaCore.COMPILER_PB_REPORT_PREVIEW_FEATURES, JavaCore.IGNORE); } |