java-topology/test/langtools/tools/javac/DefiniteAssignment/DA_DUConstructors.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

50 lines
945 B
Java

/*
* @test /nodynamiccopyright/
* @bug 8325805
* @summary Permit non-superclass instance field assignments before this/super in constructors
* @compile/fail/ref=DA_DUConstructors.out -XDrawDiagnostics DA_DUConstructors.java
*/
public class DA_DUConstructors {
// identity
class C1 {
final int x;
final int y = x + 1;
C1() {
x = 12;
super();
}
}
class C2 {
final int x;
C2() {
this(x = 3); // error
}
C2(int i) {
x = 4;
}
}
class C3 {
C3(int i) {}
}
class C4 extends C3 {
final int x;
C4() {
super(x = 3); // ok
}
}
class C5 {
final int x;
final int y = x + 1; // x is not DA
C5() {
x = 12; super();
}
C5(int i) {
/* no prologue */
x = i;
}
}
}