1 /*
   2  * @test /nodynamiccopyright/
   3  * @bug 7196163
   4  * @summary Twr with different kinds of variables: local, instance, class, parameter
   5  * @compile/fail/ref=TwrVarKinds.out -XDrawDiagnostics TwrVarKinds.java
   6  */
   7 
   8 public class TwrVarKinds implements AutoCloseable {
   9 
  10     final static TwrVarKinds r1 = new TwrVarKinds();
  11     final TwrVarKinds r2 = new TwrVarKinds();
  12     static TwrVarKinds r3 = new TwrVarKinds();
  13     TwrVarKinds r4 = new TwrVarKinds();
  14 
  15     public static void main(String... args) {
  16 
  17         TwrVarKinds r5 = new TwrVarKinds();
  18 
  19         /* static final field - ok */
  20         try (r1) {
  21         }
  22 
  23         /* non-static final field - ok */
  24         try (r1.r2) {
  25         }
  26 
  27         /* static non-final field - wrong */
  28         try (r3) {
  29         }
  30 
  31         /* non-static non-final field -wrong */
  32         try (r1.r4) {
  33         }
  34 
  35         /* local variable - ok */
  36         try (r5) {
  37         }
  38 
  39         /* parameter - ok */
  40         method(r5);
  41     }
  42 
  43     static void method(TwrVarKinds r) {
  44         /* parameter */
  45         try (r) {
  46         }
  47     }
  48 
  49     public void close() {}
  50 }