< prev index next >

test/langtools/tools/javac/switchexpr/ExpressionSwitch.java

Print this page
rev 52724 : imported patch 8214031

@@ -21,10 +21,18 @@
         check(T.C, "other");
         assertEquals(exhaustive1(T.C), "C");
         assertEquals(scopesIsolated(T.B), "B");
         assertEquals(lambdas1(T.B).get(), "B");
         assertEquals(lambdas2(T.B).get(), "B");
+        assertEquals(convert1("A"), 0);
+        assertEquals(convert1("B"), 0);
+        assertEquals(convert1("C"), 1);
+        assertEquals(convert1(""), -1);
+        assertEquals(convert2("A"), 0);
+        assertEquals(convert2("B"), 0);
+        assertEquals(convert2("C"), 1);
+        assertEquals(convert2(""), -1);
         localClass(T.A);
     }
 
     private String print(T t) {
         return switch (t) {

@@ -74,10 +82,26 @@
             case B: { break () -> "B"; }
             default: break () -> "default";
         };
     }
 
+    private int convert1(String s) {
+        return switch (s) {
+            case "A", "B" -> 0;
+            case "C" -> { break 1; }
+            default -> -1;
+        };
+    }
+
+    private int convert2(String s) {
+        return switch (s) {
+            case "A", "B": break 0;
+            case "C": break 1;
+            default: break -1;
+        };
+    }
+
     private void localClass(T t) {
         String good = "good";
         class L {
             public String c() {
                 STOP: switch (t) {
< prev index next >