382fe51b6d
Reviewed-by: vromero
82 lines
1.9 KiB
Java
82 lines
1.9 KiB
Java
/*
|
|
* @test /nodynamiccopyright/
|
|
* @bug 7196163
|
|
* @summary Twr with different kinds of variables: local, instance, class, array component, 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 meth() {
|
|
|
|
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) {
|
|
fail("Static non-final field is not allowed");
|
|
}
|
|
|
|
/* non-static non-final field - wrong */
|
|
try (r1.r4) {
|
|
fail("Non-static non-final field is not allowed");
|
|
}
|
|
|
|
/* local variable - covered by TwrForVariable1 test */
|
|
|
|
/* array components - covered by TwrForVariable2 test */
|
|
|
|
/* method parameter - ok */
|
|
method(r5);
|
|
|
|
/* constructor parameter - ok */
|
|
TwrVarKinds r6 = new TwrVarKinds(r5);
|
|
|
|
/* lambda parameter - covered by TwrAndLambda */
|
|
|
|
/* exception parameter - ok */
|
|
try {
|
|
throw new ResourceException();
|
|
} catch (ResourceException e) {
|
|
try (e) {
|
|
}
|
|
}
|
|
}
|
|
|
|
public TwrVarKinds() {
|
|
}
|
|
|
|
public TwrVarKinds(TwrVarKinds r) {
|
|
try (r) {
|
|
}
|
|
}
|
|
|
|
static void method(TwrVarKinds r) {
|
|
/* parameter */
|
|
try (r) {
|
|
}
|
|
}
|
|
|
|
static void fail(String reason) {
|
|
throw new RuntimeException(reason);
|
|
}
|
|
|
|
public void close() {}
|
|
|
|
static class ResourceException extends Exception implements AutoCloseable {
|
|
public void close() {}
|
|
}
|
|
}
|