test/tools/javac/InterfaceMemberClassModifiers.java

Wed, 23 Jan 2013 13:27:24 -0800

author
jjg
date
Wed, 23 Jan 2013 13:27:24 -0800
changeset 1521
71f35e4b93a5
parent 611
4172cfff05f0
child 2525
2eb010b6cb22
permissions
-rw-r--r--

8006775: JSR 308: Compiler changes in JDK8
Reviewed-by: jjg
Contributed-by: mernst@cs.washington.edu, wmdietl@cs.washington.edu, mpapi@csail.mit.edu, mahmood@notnoop.com

     1 /*
     2  * @test  /nodynamiccopyright/
     3  * @bug 4294065 4785453
     4  * @summary Verify that invalid access modifiers on interface members don't cause crash.
     5  * @author maddox
     6  *
     7  * @compile/fail/ref=InterfaceMemberClassModifiers.out -XDdiags=%b:%l:%_%m InterfaceMemberClassModifiers.java
     8  */
    10 public interface InterfaceMemberClassModifiers {
    12     Object nullWriter = null;
    14     class SomeClass1 implements InterfaceMemberClassModifiers {                 // OK
    15         public Object getOut() {
    16             return nullWriter;
    17         }
    18     }
    20     public class SomeClass2 implements InterfaceMemberClassModifiers {          // OK
    21         public Object getOut() {
    22             return nullWriter;
    23         }
    24     }
    26     // Compiler used to crash on these!  (after reporting error)
    28     protected class SomeClass3 implements InterfaceMemberClassModifiers {       // illegal
    29         public Object getOut() {
    30             return nullWriter;
    31         }
    32     }
    34     private class SomeClass4 implements InterfaceMemberClassModifiers {         // illegal
    35         public Object getOut() {
    36             return nullWriter;
    37         }
    38     }
    40 }

mercurial