test/tools/javac/protectedAccess/ProtectedMemberAccess3.java

Thu, 31 Aug 2017 15:17:03 +0800

author
aoqi
date
Thu, 31 Aug 2017 15:17:03 +0800
changeset 2525
2eb010b6cb22
parent 611
4172cfff05f0
parent 0
959103a6100f
permissions
-rw-r--r--

merge

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

mercurial