1 /* 2 * @test /nodynamiccopyright/ 3 * @bug 6911256 6964740 6965277 7013420 4 * @author Maurizio Cimadamore 5 * @summary Test that resource variables are implicitly final 6 * @compile/fail/ref=ImplicitFinal.out -XDrawDiagnostics ImplicitFinal.java 7 */ 8 9 import java.io.IOException; 10 11 class ImplicitFinal implements AutoCloseable { 12 public static void main(String... args) { 13 try(ImplicitFinal r = new ImplicitFinal()) { 14 r = null; //disallowed 15 } catch (IOException ioe) { // Not reachable 16 throw new AssertionError("Shouldn't reach here", ioe); 17 } 18 19 try(@SuppressWarnings("unchecked") ImplicitFinal r1 = new ImplicitFinal()) { 20 r1 = null; //disallowed 21 } catch (IOException ioe) { // Not reachable 22 throw new AssertionError("Shouldn't reach here", ioe); 23 } 24 25 try(final ImplicitFinal r2 = new ImplicitFinal()) { 26 r2 = null; //disallowed 27 } catch (IOException ioe) { // Not reachable 28 throw new AssertionError("Shouldn't reach here", ioe); 29 } 30 31 try(final @SuppressWarnings("unchecked") ImplicitFinal r3 = new ImplicitFinal()) { 32 r3 = null; //disallowed 33 } catch (IOException ioe) { // Not reachable 34 throw new AssertionError("Shouldn't reach here", ioe); 35 } 36 } 37 public void close() throws IOException { 38 throw new IOException(); 39 } 40 }