1 /** 2 * @test /nodynamiccopyright/ 3 * @summary Verify that definite assignment works (illegal code) 4 * @compile/fail/ref=DefiniteAssignment2.out -XDrawDiagnostics DefiniteAssignment2.java 5 */ 6 public class DefiniteAssignment2 { 7 8 public static void main(String[] args) { 9 int a = 0; 10 E e = E.A; 11 12 { 13 int x; 14 15 switch(a) { 16 case 0: break; 17 default: x = 1; break; 18 } 19 20 System.err.println(x); 21 } 22 23 { 24 int x; 25 26 switch(a) { 27 case 0 -> {} 28 default -> x = 1; 29 } 30 31 System.err.println(x); 32 } 33 34 { 35 int x; 36 37 switch(a) { 38 case 0: x = 0; break; 39 default: 40 } 41 42 System.err.println(x); 43 } 44 45 { 46 int x; 47 48 switch(e) { 49 case A, B, C -> x = 0; 50 } 51 52 System.err.println(x); 53 } 54 55 { 56 int x; 57 58 switch(e) { 59 case A, B, C -> { x = 0; } 60 } 61 62 System.err.println(x); 63 } 64 65 { 66 int x; 67 68 switch(e) { 69 case A, B -> { x = 0; } 70 case C -> throw new IllegalStateException(); 71 } 72 73 System.err.println(x); 74 } 75 } 76 77 enum E { 78 A, B, C; 79 } 80 }