Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorManoj Palat2019-08-14 05:09:00 +0000
committerManoj Palat2019-08-14 05:09:00 +0000
commitbed796f498b19027a8ec3a769f0d1da3ce0c4807 (patch)
treed8087f55ec75bd21c2604109595f426d5f121454
parentd1d3567f4ed7e45c044f9e85fb8b308bbc481660 (diff)
downloadeclipse.jdt.core-bed796f498b19027a8ec3a769f0d1da3ce0c4807.tar.gz
eclipse.jdt.core-bed796f498b19027a8ec3a769f0d1da3ce0c4807.tar.xz
eclipse.jdt.core-bed796f498b19027a8ec3a769f0d1da3ce0c4807.zip
Bug 545716 - [12] expression switch doesn't consider that having all
cases of an enum is enough to be exhaustive - comment 30 Change-Id: I767fee5e60f9bcc9357d307fc94f0c85d3fb543a Signed-off-by: Manoj Palat <manpalat@in.ibm.com>
-rw-r--r--org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AbstractRegressionTest.java28
-rw-r--r--org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/SwitchExpressionTest.java55
2 files changed, 58 insertions, 25 deletions
diff --git a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AbstractRegressionTest.java b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AbstractRegressionTest.java
index 21bb80d7d4..31f5fb6c72 100644
--- a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AbstractRegressionTest.java
+++ b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AbstractRegressionTest.java
@@ -947,7 +947,11 @@ protected static class JavacTestOptions {
JavacBug8144832 = RUN_JAVAC ? // https://bugs.openjdk.java.net/browse/JDK-8144832
new JavacHasABug(MismatchType.JavacErrorsEclipseNone, ClassFileConstants.JDK9, 0000) : null,
JavacBug8179483_switchExpression = RUN_JAVAC ? // https://bugs.openjdk.java.net/browse/JDK-8179483
- new JavacBug8179483(" --release 12 --enable-preview -Xlint:-preview") : null;
+ new JavacBug8179483(" --release 12 --enable-preview -Xlint:-preview") : null,
+ JavacBug8221413_switchExpression = RUN_JAVAC ? // https://bugs.openjdk.java.net/browse/JDK-8221413
+ new JavacBug8221413(" --release 12 --enable-preview -Xlint:-preview") : null,
+ JavacBug8226510_switchExpression = RUN_JAVAC ? // https://bugs.openjdk.java.net/browse/JDK-8226510
+ new JavacBug8226510(" --release 12 --enable-preview -Xlint:-preview") : null;
// bugs that have been fixed but that we've not identified
public static JavacHasABug
@@ -992,6 +996,28 @@ protected static class JavacTestOptions {
return super.getCompilerOptions() + this.extraJavacOptions;
}
}
+ public static class JavacBug8221413 extends JavacHasABug {
+ String extraJavacOptions;
+ public JavacBug8221413(String extraJavacOptions) {
+ super(MismatchType.JavacErrorsEclipseNone);
+ this.extraJavacOptions = extraJavacOptions;
+ }
+ @Override
+ String getCompilerOptions() {
+ return super.getCompilerOptions() + this.extraJavacOptions;
+ }
+ }
+ public static class JavacBug8226510 extends JavacHasABug {
+ String extraJavacOptions;
+ public JavacBug8226510(String extraJavacOptions) {
+ super(MismatchType.EclipseErrorsJavacWarnings);
+ this.extraJavacOptions = extraJavacOptions;
+ }
+ @Override
+ String getCompilerOptions() {
+ return super.getCompilerOptions() + this.extraJavacOptions;
+ }
+ }
}
// PREMATURE: Logger helps us monitor processes outputs (standard and error);
diff --git a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/SwitchExpressionTest.java b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/SwitchExpressionTest.java
index 7ef1d2e729..adace073f9 100644
--- a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/SwitchExpressionTest.java
+++ b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/SwitchExpressionTest.java
@@ -2174,8 +2174,8 @@ public class SwitchExpressionTest extends AbstractRegressionTest {
runner.runNegativeTest();
}
public void testBug545333() {
- runNegativeTest(
- new String[] {
+ Runner runner = new Runner();
+ runner.testFiles = new String[] {
"X.java",
"public class X {\n"+
" @SuppressWarnings(\"preview\")\n"+
@@ -2196,7 +2196,8 @@ public class SwitchExpressionTest extends AbstractRegressionTest {
"class MyException extends Exception {\n"+
" private static final long serialVersionUID = 3461899582505930473L; \n"+
"}\n"
- },
+ };
+ runner.expectedCompilerLog =
"----------\n" +
"1. ERROR in X.java (at line 4)\n" +
" int v = switch (i) {\n" +
@@ -2204,7 +2205,10 @@ public class SwitchExpressionTest extends AbstractRegressionTest {
" };\n" +
" ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" +
"A switch expression should have at least one result expression\n" +
- "----------\n");
+ "----------\n";
+ runner.vmArguments = new String[] {"--enable-preview"};
+ runner.javacTestOptions = JavacHasABug.JavacBug8226510_switchExpression;
+ runner.runNegativeTest();
}
public void testBug545518() {
if (this.complianceLevel < ClassFileConstants.JDK12)
@@ -2319,26 +2323,29 @@ public class SwitchExpressionTest extends AbstractRegressionTest {
},
"5");
}
- public void testBug545916_01() {
- runConformTest(
- new String[] {
- "X.java",
- "enum X {\n"+
- " A, B;\n"+
- " \n"+
- " @SuppressWarnings(\"preview\")\n"+
- " public static void main(String[] args) {\n"+
- " X myEnum = X.A;\n"+
- " int o;\n"+
- " var f = switch(myEnum) {\n"+
- " case A -> o = 5;\n"+
- " case B -> o = 10;\n"+
- " };\n"+
- " System.out.println(o);\n"+
- " }\n"+
- "} \n"
- },
- "5");
+ public void testBug545716_01() {
+ Runner runner = new Runner();
+ runner.testFiles = new String[] {
+ "X.java",
+ "enum X {\n"+
+ " A, B;\n"+
+ " \n"+
+ " @SuppressWarnings(\"preview\")\n"+
+ " public static void main(String[] args) {\n"+
+ " X myEnum = X.A;\n"+
+ " int o;\n"+
+ " var f = switch(myEnum) {\n"+
+ " case A -> o = 5;\n"+
+ " case B -> o = 10;\n"+
+ " };\n"+
+ " System.out.println(o);\n"+
+ " }\n"+
+ "} \n"
+ };
+ runner.expectedOutputString = "5";
+ runner.vmArguments = new String[] {"--enable-preview"};
+ runner.javacTestOptions = JavacHasABug.JavacBug8221413_switchExpression;
+ runner.runConformTest();
}
public void testBug545983_01() {
this.runNegativeTest(

Back to the top