Fri, 16 Jul 2010 19:35:24 -0700
6911256: Project Coin: Support Automatic Resource Management (ARM) blocks in the compiler
6964740: Project Coin: More tests for ARM compiler changes
6965277: Project Coin: Correctness issues in ARM implementation
6967065: add -Xlint warning category for Automatic Resource Management (ARM)
Reviewed-by: jjb, darcy, mcimadamore, jjg, briangoetz
Contributed-by: tball@google.com
darcy@609 | 1 | /* |
darcy@609 | 2 | * @test /nodynamiccopyright/ |
darcy@609 | 3 | * @bug 6911256 6964740 |
darcy@609 | 4 | * @author Joseph D. Darcy |
darcy@609 | 5 | * @summary Verify invalid TWR block is not accepted. |
darcy@609 | 6 | * @compile/fail -source 6 TwrOnNonResource.java |
darcy@609 | 7 | * @compile/fail/ref=TwrOnNonResource.out -XDrawDiagnostics TwrOnNonResource.java |
darcy@609 | 8 | */ |
darcy@609 | 9 | |
darcy@609 | 10 | class TwrOnNonResource { |
darcy@609 | 11 | public static void main(String... args) { |
darcy@609 | 12 | try(TwrOnNonResource aonr = new TwrOnNonResource()) { |
darcy@609 | 13 | System.out.println(aonr.toString()); |
darcy@609 | 14 | } |
darcy@609 | 15 | try(TwrOnNonResource aonr = new TwrOnNonResource()) { |
darcy@609 | 16 | System.out.println(aonr.toString()); |
darcy@609 | 17 | } finally {;} |
darcy@609 | 18 | try(TwrOnNonResource aonr = new TwrOnNonResource()) { |
darcy@609 | 19 | System.out.println(aonr.toString()); |
darcy@609 | 20 | } catch (Exception e) {;} |
darcy@609 | 21 | |
darcy@609 | 22 | // Also check expression form |
darcy@609 | 23 | TwrOnNonResource aonr = new TwrOnNonResource(); |
darcy@609 | 24 | try(aonr) { |
darcy@609 | 25 | System.out.println(aonr.toString()); |
darcy@609 | 26 | } |
darcy@609 | 27 | try(aonr) { |
darcy@609 | 28 | System.out.println(aonr.toString()); |
darcy@609 | 29 | } finally {;} |
darcy@609 | 30 | try(aonr) { |
darcy@609 | 31 | System.out.println(aonr.toString()); |
darcy@609 | 32 | } catch (Exception e) {;} |
darcy@609 | 33 | } |
darcy@609 | 34 | |
darcy@609 | 35 | /* |
darcy@609 | 36 | * A close method, but the class is <em>not</em> Closeable or |
darcy@609 | 37 | * AutoCloseable. |
darcy@609 | 38 | */ |
darcy@609 | 39 | public void close() { |
darcy@609 | 40 | throw new AssertionError("I'm not Closable!"); |
darcy@609 | 41 | } |
darcy@609 | 42 | } |