1/*
2 * @test /nodynamiccopyright/
3 * @bug 6711619
4 *
5 * @summary javac doesn't allow access to protected members in intersection types
6 * @author Maurizio Cimadamore
7 *
8 * @compile/fail/ref=T6711619a.out -XDrawDiagnostics T6711619a.java
9 */
10class T6711619a {
11
12    static class A {
13        private void a() {}
14        private A a;
15    }
16    static class B extends A {
17        private B b() {}
18        private B b;
19    }
20    static interface I{
21        void i();
22    }
23    static interface I1{
24        void i1();
25    }
26    static class E extends B implements I, I1{
27        public void i() {}
28        public void i1() {}
29    }
30    static class C<W extends B & I1, T extends W>{
31        T t;
32        W w;
33        C(W w, T t) {
34            this.w = w;
35            this.t = t;
36        }
37    }
38
39    static void testMemberMethods(C<? extends A, ? extends I> arg) {
40        arg.t.a();
41        arg.t.b();
42    }
43
44    static void testMemberFields(C<? extends A, ? extends I> arg) {
45        A ta; B tb;
46        ta = arg.t.a;
47        tb = arg.t.b;
48        ta = arg.w.a;
49        tb = arg.w.b;
50    }
51}
52