java-topology/test/langtools/tools/javac/implicitThis/NewBeforeOuterConstructed2.java
russell@unturf.com 0a580b313d undefect. CWE-407 — 63 sites patched across 27 ecosystems
Authors: russell@unturf.com · brackishbert@gmail.com · foxhop.net · TimeHexOn.com

Patches, unit tests, benchmarks, whitepaper, and outreach briefs.
Public domain — no copyright claimed. Use freely.
2026-03-26 17:11:57 -04:00

27 lines
831 B
Java

/*
* @test /nodynamiccopyright/
* @bug 4689058
* @summary unverifiable code for implicit outer in super constructor call
*
* @compile/fail/ref=NewBeforeOuterConstructed2.out -XDrawDiagnostics NewBeforeOuterConstructed2.java
*/
public class NewBeforeOuterConstructed2 {
NewBeforeOuterConstructed2(Object o) {}
class Middle extends NewBeforeOuterConstructed2 {
Middle(int i) {
super(null);
}
Middle() {
// The 'new' below is illegal, as the outer
// constructor has not been called when the
// implicit reference to 'this' is evaluated
// during the new instance expression.
super(/*Middle.this.*/new Middle(1));
}
class Inner {}
void f() {
System.out.println("ok");
}
}
}