The following code compiles to unverifiable byte code. The problem is
the implicit qualifier in the implicit superclass constructor invocation
in the implicit constructor for Three.
class One {
class Two extends One {
{ System.out.println(One.this); }
}
class Three extends Two {
{ new Two(); }
}
public static void main(String[] args) {
One o = new One();
System.out.println(o + " " + o.new Three());
}
}
the implicit qualifier in the implicit superclass constructor invocation
in the implicit constructor for Three.
class One {
class Two extends One {
{ System.out.println(One.this); }
}
class Three extends Two {
{ new Two(); }
}
public static void main(String[] args) {
One o = new One();
System.out.println(o + " " + o.new Three());
}
}