darcy@609: /* darcy@609: * @test /nodynamiccopyright/ darcy@609: * @bug 6911256 6964740 6965277 6967065 darcy@609: * @author Joseph D. Darcy darcy@609: * @summary Check that -Xlint:arm warnings are generated as expected darcy@609: * @compile/ref=ArmLint.out -Xlint:arm,deprecation -XDrawDiagnostics ArmLint.java darcy@609: */ darcy@609: darcy@609: class ArmLint implements AutoCloseable { darcy@609: private static void test1() { darcy@609: try(ArmLint r1 = new ArmLint(); darcy@609: ArmLint r2 = new ArmLint(); darcy@609: ArmLint r3 = new ArmLint()) { darcy@609: r1.close(); // The resource's close darcy@609: r2.close(42); // *Not* the resource's close darcy@609: // r3 not referenced darcy@609: } darcy@609: darcy@609: } darcy@609: darcy@609: @SuppressWarnings("arm") darcy@609: private static void test2() { darcy@609: try(@SuppressWarnings("deprecation") AutoCloseable r4 = darcy@609: new DeprecatedAutoCloseable()) { darcy@609: // r4 not referenced darcy@609: } catch(Exception e) { darcy@609: ; darcy@609: } darcy@609: } darcy@609: darcy@609: /** darcy@609: * The AutoCloseable method of a resource. darcy@609: */ darcy@609: @Override darcy@609: public void close () { darcy@609: return; darcy@609: } darcy@609: darcy@609: /** darcy@609: * Not the AutoCloseable method of a resource. darcy@609: */ darcy@609: public void close (int arg) { darcy@609: return; darcy@609: } darcy@609: } darcy@609: darcy@609: @Deprecated darcy@609: class DeprecatedAutoCloseable implements AutoCloseable { darcy@609: public DeprecatedAutoCloseable(){super();} darcy@609: darcy@609: @Override darcy@609: public void close () { darcy@609: return; darcy@609: } darcy@609: }