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