| /* |
| * @test /nodynamiccopyright/ |
| * @bug 6711619 |
| * |
| * @summary javac doesn't allow access to protected members in intersection types |
| * @author Maurizio Cimadamore |
| * |
| * @compile/fail/ref=T6711619a.out -XDrawDiagnostics T6711619a.java |
| */ |
| class T6711619a { |
| |
| static class A { |
| private void a() {} |
| private A a; |
| } |
| static class B extends A { |
| private B b() {} |
| private B b; |
| } |
| static interface I{ |
| void i(); |
| } |
| static interface I1{ |
| void i1(); |
| } |
| static class E extends B implements I, I1{ |
| public void i() {} |
| public void i1() {} |
| } |
| static class C<W extends B & I1, T extends W>{ |
| T t; |
| W w; |
| C(W w, T t) { |
| this.w = w; |
| this.t = t; |
| } |
| } |
| |
| static void testMemberMethods(C<? extends A, ? extends I> arg) { |
| arg.t.a(); |
| arg.t.b(); |
| } |
| |
| static void testMemberFields(C<? extends A, ? extends I> arg) { |
| A ta; B tb; |
| ta = arg.t.a; |
| tb = arg.t.b; |
| ta = arg.w.a; |
| tb = arg.w.b; |
| } |
| } |