test/tools/javac/TryWithResources/ImplicitFinal.java

Fri, 29 Apr 2011 16:06:28 +0100

author
mcimadamore
date
Fri, 29 Apr 2011 16:06:28 +0100
changeset 992
dc3d9ef880a1
parent 840
7f8794f9cc14
child 2525
2eb010b6cb22
permissions
-rw-r--r--

6550655: com.sun.tools.javac.code.Symbol$CompletionFailure
Summary: Accessing a non-existing enum constant from an annotation whose class is available results in an internal error
Reviewed-by: jjg

     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  */
     9 import java.io.IOException;
    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         }
    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         }
    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         }
    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 }

mercurial