3789983e89
Reviewed-by: darcy, ihse
52 lines
1.1 KiB
Java
52 lines
1.1 KiB
Java
/*
|
|
* @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;
|
|
}
|
|
}
|