--- /dev/null 2015-08-31 00:12:54.703509796 +0300 +++ new/test/tools/javac/TryWithResources/TwrVarKinds.java 2015-10-14 09:44:27.111473545 +0300 @@ -0,0 +1,50 @@ +/* + * @test /nodynamiccopyright/ + * @bug 7196163 + * @summary Twr with different kinds of variables: local, instance, class, parameter + * @compile/fail/ref=TwrVarKinds.out -XDrawDiagnostics TwrVarKinds.java + */ + +public class TwrVarKinds implements AutoCloseable { + + final static TwrVarKinds r1 = new TwrVarKinds(); + final TwrVarKinds r2 = new TwrVarKinds(); + static TwrVarKinds r3 = new TwrVarKinds(); + TwrVarKinds r4 = new TwrVarKinds(); + + public static void main(String... args) { + + TwrVarKinds r5 = new TwrVarKinds(); + + /* static final field - ok */ + try (r1) { + } + + /* non-static final field - ok */ + try (r1.r2) { + } + + /* static non-final field - wrong */ + try (r3) { + } + + /* non-static non-final field -wrong */ + try (r1.r4) { + } + + /* local variable - ok */ + try (r5) { + } + + /* parameter - ok */ + method(r5); + } + + static void method(TwrVarKinds r) { + /* parameter */ + try (r) { + } + } + + public void close() {} +}