test/tools/javac/InterfaceMemberClassModifiers.java

Wed, 14 Nov 2018 10:18:25 -0800

author
diazhou
date
Wed, 14 Nov 2018 10:18:25 -0800
changeset 3762
7909abb85562
parent 611
4172cfff05f0
child 2525
2eb010b6cb22
permissions
-rw-r--r--

Added tag jdk8u201-b04 for changeset a7f48b9dfb82

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

mercurial