diff options
author | Stephan Herrmann | 2019-07-29 08:15:31 +0000 |
---|---|---|
committer | Stephan Herrmann | 2019-07-29 08:15:31 +0000 |
commit | de94bf3e02a331d5abf69c0fbc4855e04f919774 (patch) | |
tree | 77bff8e2f36427369e79202c251687dcd22a71f6 | |
parent | c8ff21d2be3ee19db7fdae6e829af0fb1504a7fb (diff) | |
download | eclipse.jdt.core-de94bf3e02a331d5abf69c0fbc4855e04f919774.tar.gz eclipse.jdt.core-de94bf3e02a331d5abf69c0fbc4855e04f919774.tar.xz eclipse.jdt.core-de94bf3e02a331d5abf69c0fbc4855e04f919774.zip |
Bug 513766 - [1.8][inference] Compiler error when autoboxing type
inferrring expression in if clause
- document javac bug
Change-Id: I9045f71946856357e10545dc20cc0d1294a8286f
2 files changed, 23 insertions, 6 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 2ae9cb37d6..21bb80d7d4 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 @@ -945,7 +945,9 @@ protected static class JavacTestOptions { JavacBug6337964 = RUN_JAVAC ? // https://bugs.eclipse.org/bugs/show_bug.cgi?id=112433 new JavacHasABug(MismatchType.JavacErrorsEclipseNone, ClassFileConstants.JDK1_6, 1045/*guessed*/, true) : null, JavacBug8144832 = RUN_JAVAC ? // https://bugs.openjdk.java.net/browse/JDK-8144832 - new JavacHasABug(MismatchType.JavacErrorsEclipseNone, ClassFileConstants.JDK9, 0000) : null; + 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; // bugs that have been fixed but that we've not identified public static JavacHasABug @@ -979,6 +981,17 @@ protected static class JavacTestOptions { } }: null; } + public static class JavacBug8179483 extends JavacHasABug { + String extraJavacOptions; + public JavacBug8179483(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 052e3e905b..7ef1d2e729 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 @@ -14,6 +14,7 @@ package org.eclipse.jdt.core.tests.compiler.regression; import java.util.Map; +import org.eclipse.jdt.core.tests.compiler.regression.AbstractRegressionTest.JavacTestOptions.JavacHasABug; import org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants; import org.eclipse.jdt.internal.compiler.impl.CompilerOptions; @@ -2143,8 +2144,8 @@ public class SwitchExpressionTest extends AbstractRegressionTest { } // see comment 12 in the bug public void testBug513766_01() { - this.runNegativeTest( - new String[] { + Runner runner = new Runner(); + runner.testFiles = new String[] { "X.java", "public class X {\n"+ " @SuppressWarnings(\"preview\")\n"+ @@ -2155,8 +2156,8 @@ public class SwitchExpressionTest extends AbstractRegressionTest { " System.out.println(\"true, too\");\n"+ " }\n"+ " <T> T magic() { return null; }\n"+ - "}\n", - }, + "}\n"}; + runner.expectedCompilerLog = "----------\n" + "1. ERROR in X.java (at line 4)\n" + " if (switch(i) { default -> magic(); })\n" + @@ -2167,7 +2168,10 @@ public class SwitchExpressionTest extends AbstractRegressionTest { " if (magic())\n" + " ^^^^^^^\n" + "Type mismatch: cannot convert from Object to boolean\n" + - "----------\n"); + "----------\n"; + runner.vmArguments = new String[] {"--enable-preview"}; + runner.javacTestOptions = JavacHasABug.JavacBug8179483_switchExpression; + runner.runNegativeTest(); } public void testBug545333() { runNegativeTest( |