Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorManoj Palat2019-08-26 06:40:33 +0000
committerManoj Palat2019-08-26 06:40:33 +0000
commitbd5becc56be4773536ab7c944c24a558e872f625 (patch)
treed8db1d5fa82e47f2f23d96c741d1719054bc8001
parente948eefba4e2a719f15c7247e8d912766617dc1e (diff)
downloadeclipse.jdt.core-bd5becc56be4773536ab7c944c24a558e872f625.tar.gz
eclipse.jdt.core-bd5becc56be4773536ab7c944c24a558e872f625.tar.xz
eclipse.jdt.core-bd5becc56be4773536ab7c944c24a558e872f625.zip
Bug 550354 - [13] yield in a non-paranthesized if block is flagged as anY20190826-1000
error Change-Id: I56306f1a2bc8a40909cf4f7987783b847f8bb3b8 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/SwitchExpressionsYieldTest.java22
-rw-r--r--org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/Scanner.java2
2 files changed, 22 insertions, 2 deletions
diff --git a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/SwitchExpressionsYieldTest.java b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/SwitchExpressionsYieldTest.java
index 9c5e8c910b..756679da50 100644
--- a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/SwitchExpressionsYieldTest.java
+++ b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/SwitchExpressionsYieldTest.java
@@ -29,7 +29,7 @@ public class SwitchExpressionsYieldTest extends AbstractRegressionTest {
static {
// TESTS_NUMBERS = new int [] { 40 };
// TESTS_RANGE = new int[] { 1, -1 };
-// TESTS_NAMES = new String[] { "testBug544073_012" };
+// TESTS_NAMES = new String[] { "testBug550354_01" };
}
public static Class<?> testClass() {
@@ -3352,4 +3352,24 @@ public class SwitchExpressionsYieldTest extends AbstractRegressionTest {
},
"300");
}
+ public void testBug550354_01() {
+ runConformTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"+
+ " @SuppressWarnings({ \"preview\" })\n"+
+ " public static int foo(int i) throws Exception {\n"+
+ " int v = switch (i) {\n"+
+ " default -> {if (i > 0) yield 1;\n"+
+ " else yield 2;}\n"+
+ " };\n"+
+ " return v;\n"+
+ " }\n"+
+ " public static void main(String argv[]) throws Exception {\n"+
+ " System.out.println(X.foo(1));\n"+
+ " }\n"+
+ "}"
+ },
+ "1");
+ }
} \ No newline at end of file
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/Scanner.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/Scanner.java
index 8ee60c6e06..2b56fe072d 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/Scanner.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/Scanner.java
@@ -5019,7 +5019,7 @@ private boolean mayBeAtAnYieldStatement() {
switch (this.lookBack[1]) {
case TokenNameLBRACE:
case TokenNameRBRACE:
- case TokenNameRBRACKET:
+ case TokenNameRPAREN:
case TokenNameSEMICOLON:
case TokenNameelse:
return true;

Back to the top