ProtectedMemberAccess3.java revision 3643:589ff4d43428
116359Sasami/* 216359Sasami * @test /nodynamiccopyright/ 316359Sasami * @bug 4319507 4785453 416359Sasami * @summary Verify correct implementation of JLS2e 6.6.2.1 516359Sasami * @author maddox 650477Speter * 716359Sasami * @compile/fail/ref=ProtectedMemberAccess3.out --diags:formatterOptions=-simpleNames;layout=%b:%l:%_%m ProtectedMemberAccess3.java 816359Sasami */ 916359Sasami 1016359Sasami// 46 errors expected. 1116359Sasami 1216359Sasamiimport pkg.SuperClass; 1385532Sru 1416359Sasamiclass ProtectedMemberAccess3 { 1516359Sasami 1616359Sasami // Since this class is not a subclass of the class in which the 1785532Sru // protected members are declared, all of the accesses are illegal. 1816359Sasami 1916359Sasami pkg.SuperClass x = new pkg.SuperClass(); 2016359Sasami 2130665Skato static pkg.SuperClass sx = new pkg.SuperClass(); 22169612Swkoszek 2330665Skato class Inner { 2452651Smarcel 2516359Sasami int i = x.pi; // illegal 2616359Sasami int j = x.spi; // illegal 2716359Sasami 2879014Simp int n = sx.pi; // illegal 2916359Sasami int m = sx.spi; // illegal 3052651Smarcel 3185909Simp //static int sn = sx.pi; 3216359Sasami //static int sm = sx.spi; 33154975Snyan 3453689Snyan int w = x.pm(); // illegal 35154975Snyan int y = x.spm(); // illegal 36154975Snyan 37242870Snyan int u = sx.pm(); // illegal 38242870Snyan int v = sx.spm(); // illegal 39242870Snyan 40242870Snyan pkg.SuperClass.pC obj1; // illegal 4116359Sasami pkg.SuperClass.spC obj2; // illegal 4216359Sasami 4316359Sasami pkg.SuperClass.pI obj3; // illegal 4416359Sasami pkg.SuperClass.spI obj4; // illegal 4569135Speter 4616359Sasami Object o1 = (pkg.SuperClass.pC) null; // illegal 4769135Speter Object o2 = (pkg.SuperClass.spC) null; // illegal 4816359Sasami 4969135Speter Object o3 = (pkg.SuperClass.pI) null; // illegal 5038833Skato Object o4 = (pkg.SuperClass.spI) null; // illegal 5116359Sasami 5216359Sasami class C1 extends pkg.SuperClass.pC {} // illegal 5386276Simp class C2 extends pkg.SuperClass.spC {} // illegal 5486276Simp 5585909Simp //interface I1 extends pkg.SuperClass.pI {} 56 //interface I2 extends pkg.SuperClass.spI {} 57 58 // Not allowed in inner classes. 59 // static { ... } 60 61 void m() { 62 63 pkg.SuperClass lx = new pkg.SuperClass(); 64 65 x.pi = 1; // illegal 66 x.spi = 2; // illegal 67 68 sx.pi = 1; // illegal 69 sx.spi = 2; // illegal 70 71 lx.pi = 1; // illegal 72 lx.spi = 2; // illegal 73 74 int t = x.pm(); // illegal 75 int y = x.spm(); // illegal 76 77 int u = sx.pm(); // illegal 78 int v = sx.spm(); // illegal 79 80 int w = lx.pm(); // illegal 81 int z = lx.spm(); // illegal 82 83 int i = x.pi; // illegal 84 int j = x.spi; // illegal 85 86 int n = sx.pi; // illegal 87 int m = sx.spi; // illegal 88 89 int k = lx.pi; // illegal 90 int l = lx.spi; // illegal 91 92 pkg.SuperClass.pC obj1; // illegal 93 pkg.SuperClass.spC obj2; // illegal 94 95 pkg.SuperClass.pI obj3; // illegal 96 pkg.SuperClass.spI obj4; // illegal 97 98 Object o1 = (pkg.SuperClass.pC) null; // illegal 99 Object o2 = (pkg.SuperClass.spC) null; // illegal 100 101 Object o3 = (pkg.SuperClass.pI) null; // illegal 102 Object o4 = (pkg.SuperClass.spI) null; // illegal 103 104 class C1 extends pkg.SuperClass.pC {} // illegal 105 class C2 extends pkg.SuperClass.spC {} // illegal 106 107 //interface I1 extends pkg.SuperClass.pI {} 108 //interface I2 extends pkg.SuperClass.spI {} 109 110 } 111 112 } 113 114} 115