1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114
|
/*
* @test /nodynamiccopyright/
* @bug 4319507 4785453
* @summary Verify correct implementation of JLS2e 6.6.2.1
* @author maddox
*
* @compile/fail/ref=ProtectedMemberAccess3.out --diags:formatterOptions=-simpleNames;layout=%b:%l:%_%m ProtectedMemberAccess3.java
*/
// 46 errors expected.
import pkg.SuperClass;
class ProtectedMemberAccess3 {
// Since this class is not a subclass of the class in which the
// protected members are declared, all of the accesses are illegal.
pkg.SuperClass x = new pkg.SuperClass();
static pkg.SuperClass sx = new pkg.SuperClass();
class Inner {
int i = x.pi; // illegal
int j = x.spi; // illegal
int n = sx.pi; // illegal
int m = sx.spi; // illegal
//static int sn = sx.pi;
//static int sm = sx.spi;
int w = x.pm(); // illegal
int y = x.spm(); // illegal
int u = sx.pm(); // illegal
int v = sx.spm(); // illegal
pkg.SuperClass.pC obj1; // illegal
pkg.SuperClass.spC obj2; // illegal
pkg.SuperClass.pI obj3; // illegal
pkg.SuperClass.spI obj4; // illegal
Object o1 = (pkg.SuperClass.pC) null; // illegal
Object o2 = (pkg.SuperClass.spC) null; // illegal
Object o3 = (pkg.SuperClass.pI) null; // illegal
Object o4 = (pkg.SuperClass.spI) null; // illegal
class C1 extends pkg.SuperClass.pC {} // illegal
class C2 extends pkg.SuperClass.spC {} // illegal
//interface I1 extends pkg.SuperClass.pI {}
//interface I2 extends pkg.SuperClass.spI {}
// Not allowed in inner classes.
// static { ... }
void m() {
pkg.SuperClass lx = new pkg.SuperClass();
x.pi = 1; // illegal
x.spi = 2; // illegal
sx.pi = 1; // illegal
sx.spi = 2; // illegal
lx.pi = 1; // illegal
lx.spi = 2; // illegal
int t = x.pm(); // illegal
int y = x.spm(); // illegal
int u = sx.pm(); // illegal
int v = sx.spm(); // illegal
int w = lx.pm(); // illegal
int z = lx.spm(); // illegal
int i = x.pi; // illegal
int j = x.spi; // illegal
int n = sx.pi; // illegal
int m = sx.spi; // illegal
int k = lx.pi; // illegal
int l = lx.spi; // illegal
pkg.SuperClass.pC obj1; // illegal
pkg.SuperClass.spC obj2; // illegal
pkg.SuperClass.pI obj3; // illegal
pkg.SuperClass.spI obj4; // illegal
Object o1 = (pkg.SuperClass.pC) null; // illegal
Object o2 = (pkg.SuperClass.spC) null; // illegal
Object o3 = (pkg.SuperClass.pI) null; // illegal
Object o4 = (pkg.SuperClass.spI) null; // illegal
class C1 extends pkg.SuperClass.pC {} // illegal
class C2 extends pkg.SuperClass.spC {} // illegal
//interface I1 extends pkg.SuperClass.pI {}
//interface I2 extends pkg.SuperClass.spI {}
}
}
}
|