| /** |
| * @test /nodynamiccopyright/ |
| * @summary Verify that definite assignment works (illegal code) |
| * @compile/fail/ref=DefiniteAssignment2.out -XDrawDiagnostics DefiniteAssignment2.java |
| */ |
| public class DefiniteAssignment2 { |
| |
| public static void meth() { |
| int a = 0; |
| E e = E.A; |
| |
| { |
| int x; |
| |
| switch(a) { |
| case 0: break; |
| default: x = 1; break; |
| } |
| |
| System.err.println(x); |
| } |
| |
| { |
| int x; |
| |
| switch(a) { |
| case 0 -> {} |
| default -> x = 1; |
| } |
| |
| System.err.println(x); |
| } |
| |
| { |
| int x; |
| |
| switch(a) { |
| case 0: x = 0; break; |
| default: |
| } |
| |
| System.err.println(x); |
| } |
| |
| { |
| int x; |
| |
| switch(e) { |
| case A, B, C -> x = 0; |
| } |
| |
| System.err.println(x); |
| } |
| |
| { |
| int x; |
| |
| switch(e) { |
| case A, B, C -> { x = 0; } |
| } |
| |
| System.err.println(x); |
| } |
| |
| { |
| int x; |
| |
| switch(e) { |
| case A, B -> { x = 0; } |
| case C -> throw new IllegalStateException(); |
| } |
| |
| System.err.println(x); |
| } |
| } |
| |
| enum E { |
| A, B, C; |
| } |
| } |