1 /*
2  * @test /nodynamiccopyright/
3  * @bug 8206986
4  * @summary Verify reachability in switch expressions.
5  * @compile/fail/ref=ExpressionSwitchUnreachable.out -XDrawDiagnostics ExpressionSwitchUnreachable.java
6  */
7 
8 public class ExpressionSwitchUnreachable {
9 
main(String[] args)10     public static void main(String[] args) {
11         int z = 42;
12         int i = switch (z) {
13             case 0 -> {
14                 yield 42;
15                 System.out.println("Unreachable");  //Unreachable
16             }
17             default -> 0;
18         };
19         i = switch (z) {
20             case 0 -> {
21                 yield 42;
22                 yield 42; //Unreachable
23             }
24             default -> 0;
25         };
26         i = switch (z) {
27             case 0:
28                 System.out.println("0");
29                 yield 42;
30                 System.out.println("1");    //Unreachable
31             default : yield 42;
32         };
33         i = switch (z) {
34             case 0 -> 42;
35             default -> {
36                 yield 42;
37                 System.out.println("Unreachable"); //Unreachable
38             }
39         };
40         i = switch (z) {
41             case 0: yield 42;
42             default:
43                 System.out.println("0");
44                 yield 42;
45                 System.out.println("1");    //Unreachable
46         };
47         i = switch (z) {
48             case 0:
49             default:
50                 System.out.println("0");
51                 yield 42;
52                 System.out.println("1");    //Unreachable
53         };
54     }
55 
56 
57 }
58