import java.lang.Exception;
class C {
static class MyResource implements AutoCloseable {
@Override public void close() { }
}
void m1() throws Exception {
MyResource r1;
try (r1 = new MyResource()) {
System.out.println(r1);
}
try (MyResource r2 = new MyResource()) {
System.out.println(r2);
}
MyResource r3 = new MyResource();
try (MyResource r = r3) {
System.out.println(r);
}
}
void m2() throws Exception {
MyResource r1 = null;
try (r1 = new MyResource()) {
System.out.println(r1);
}
try (MyResource r2 = new MyResource()) {
r2 = null; // todo: check for NPE
System.out.println(r2);
}
MyResource r3 = null;
System.out.println(r3);
try (r3 = new MyResource()) { }
try (MyResource r4 = new MyResource()) { }
try (MyResource r5 = new MyResource()) {
System.out.println(r5);
r5 = new MyResource();
}
MyResource r6;
try (MyResource r = r6) {
System.out.println(r);
}
}
}