| /* @test /nodynamiccopyright/ |
| * @bug 7196163 |
| * @summary Verify that an improper combination of modifiers and variable is rejected |
| * in an operand to try-with-resources |
| * @compile/fail/ref=TwrForVariable2.out -XDrawDiagnostics -Xlint:-options TwrForVariable2.java |
| */ |
| public class TwrForVariable2 implements AutoCloseable { |
| public static void main(String... args) { |
| TwrForVariable2 v = new TwrForVariable2(); |
| TwrForVariable3[] v2 = new TwrForVariable3[1]; |
| TwrForVariable3[][] v3 = new TwrForVariable3[1][1]; |
| |
| try (final v) { |
| fail("no modifiers before variables"); |
| } |
| try (@Deprecated v) { |
| fail("no annotations before variables"); |
| } |
| try (v;;) { |
| fail("illegal double semicolon"); |
| } |
| try ((v)) { |
| fail("parentheses not allowed"); |
| } |
| try (v2[0]) { |
| fail("array access not allowed"); |
| } |
| try (v3[0][0]) { |
| fail("array access not allowed"); |
| } |
| try (args.length == 0 ? v : v) { |
| fail("general expressions not allowed"); |
| } |
| try ((TwrForVariable2)null) { |
| fail("null as variable is not allowed"); |
| } |
| } |
| |
| static void fail(String reason) { |
| throw new RuntimeException(reason); |
| } |
| |
| public void close() { |
| } |
| |
| } |