0N/A/*
0N/A * @test /nodynamiccopyright/
0N/A * @bug 4319507 4785453
0N/A * @summary Verify correct implementation of JLS2e 6.6.2.1
0N/A * @author maddox
0N/A *
610N/A * @compile/fail/ref=ProtectedMemberAccess3.out -XDdiags=-simpleNames -XDdiagsFormat=%b:%l:%_%m ProtectedMemberAccess3.java
0N/A */
0N/A
0N/A// 46 errors expected.
0N/A
0N/Aimport pkg.SuperClass;
0N/A
0N/Aclass ProtectedMemberAccess3 {
0N/A
0N/A // Since this class is not a subclass of the class in which the
0N/A // protected members are declared, all of the accesses are illegal.
0N/A
0N/A pkg.SuperClass x = new pkg.SuperClass();
0N/A
0N/A static pkg.SuperClass sx = new pkg.SuperClass();
0N/A
0N/A class Inner {
0N/A
0N/A int i = x.pi; // illegal
0N/A int j = x.spi; // illegal
0N/A
0N/A int n = sx.pi; // illegal
0N/A int m = sx.spi; // illegal
0N/A
0N/A //static int sn = sx.pi;
0N/A //static int sm = sx.spi;
0N/A
0N/A int w = x.pm(); // illegal
0N/A int y = x.spm(); // illegal
0N/A
0N/A int u = sx.pm(); // illegal
0N/A int v = sx.spm(); // illegal
0N/A
0N/A pkg.SuperClass.pC obj1; // illegal
0N/A pkg.SuperClass.spC obj2; // illegal
0N/A
0N/A pkg.SuperClass.pI obj3; // illegal
0N/A pkg.SuperClass.spI obj4; // illegal
0N/A
0N/A Object o1 = (pkg.SuperClass.pC) null; // illegal
0N/A Object o2 = (pkg.SuperClass.spC) null; // illegal
0N/A
0N/A Object o3 = (pkg.SuperClass.pI) null; // illegal
0N/A Object o4 = (pkg.SuperClass.spI) null; // illegal
0N/A
0N/A class C1 extends pkg.SuperClass.pC {} // illegal
0N/A class C2 extends pkg.SuperClass.spC {} // illegal
0N/A
0N/A //interface I1 extends pkg.SuperClass.pI {}
0N/A //interface I2 extends pkg.SuperClass.spI {}
0N/A
0N/A // Not allowed in inner classes.
0N/A // static { ... }
0N/A
0N/A void m() {
0N/A
0N/A pkg.SuperClass lx = new pkg.SuperClass();
0N/A
0N/A x.pi = 1; // illegal
0N/A x.spi = 2; // illegal
0N/A
0N/A sx.pi = 1; // illegal
0N/A sx.spi = 2; // illegal
0N/A
0N/A lx.pi = 1; // illegal
0N/A lx.spi = 2; // illegal
0N/A
0N/A int t = x.pm(); // illegal
0N/A int y = x.spm(); // illegal
0N/A
0N/A int u = sx.pm(); // illegal
0N/A int v = sx.spm(); // illegal
0N/A
0N/A int w = lx.pm(); // illegal
0N/A int z = lx.spm(); // illegal
0N/A
0N/A int i = x.pi; // illegal
0N/A int j = x.spi; // illegal
0N/A
0N/A int n = sx.pi; // illegal
0N/A int m = sx.spi; // illegal
0N/A
0N/A int k = lx.pi; // illegal
0N/A int l = lx.spi; // illegal
0N/A
0N/A pkg.SuperClass.pC obj1; // illegal
0N/A pkg.SuperClass.spC obj2; // illegal
0N/A
0N/A pkg.SuperClass.pI obj3; // illegal
0N/A pkg.SuperClass.spI obj4; // illegal
0N/A
0N/A Object o1 = (pkg.SuperClass.pC) null; // illegal
0N/A Object o2 = (pkg.SuperClass.spC) null; // illegal
0N/A
0N/A Object o3 = (pkg.SuperClass.pI) null; // illegal
0N/A Object o4 = (pkg.SuperClass.spI) null; // illegal
0N/A
0N/A class C1 extends pkg.SuperClass.pC {} // illegal
0N/A class C2 extends pkg.SuperClass.spC {} // illegal
0N/A
0N/A //interface I1 extends pkg.SuperClass.pI {}
0N/A //interface I2 extends pkg.SuperClass.spI {}
0N/A
0N/A }
0N/A
0N/A }
0N/A
0N/A}