----- struct A { B b; // L3 } struct B // L6 { A a; // L8 } void main() { } ----- $ test.d(6): Error: struct test.B no size yet for forward reference This is a completely useless diagnostic, it doesn't tell me *what code* caused the forward reference. It should either reference L3 or L8, not the line of the beginning of the struct definition.
This now issues: test.d(8): Error: struct `test.A` no size because of forward reference So, I guess this has been fixed.