https://issues.dlang.org/show_bug.cgi?id=17194
--- Comment #5 from radu.raca...@gmail.com --- Just to point that "scope" is to blame here, removing "scope" from the inner stuct ctor like: +++++++++++++++++++ struct V { W w; struct W { this(/*scope*/ ref V v) { this.v = &v; } V* v; } } void main() { V v; } +++++++++++++++++++ compiles without errors. --