1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
/*
* @test /nodynamiccopyright/
* @bug 8270835
* @summary regression after JDK-8261006
* @compile/fail/ref=CantReferenceBeforeConstructorTest.out -XDrawDiagnostics CantReferenceBeforeConstructorTest.java
*/
public class CantReferenceBeforeConstructorTest {
// test case I
class A extends B {
A(int i) {}
class C extends B {
class D extends S {
D(float f) {
C.super.ref.super(); // ok
}
}
}
}
class B {
B ref;
class S {}
}
// test case II
class AA extends BB.CC {
AA() {
this.super(); // error
}
}
class BB {
class CC extends BB {
void m() {
BB.this.f();
}
}
void f() {}
}
}
|