Test case: template Mix() { int y = { S* s; return s ? s.mix.y : 0; }(); } struct S { int x = { S* s; return s ? s.x : 0; }(); // OK mixin Mix mix; // bug, Error: circular reference to 'y' }
https://github.com/D-Programming-Language/dmd/pull/5118
Commits pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/3c70f276e47c0b0033d7b6c1e2ba281c0f27db28 fix Issue 15117 - Unreasonable circular reference error via named mixin https://github.com/D-Programming-Language/dmd/commit/d2ee18c7401da4c961a60b19241178f629e3ce84 Merge pull request #5118 from 9rnsr/fix_dotidexp Issue 15116 & 15117 - fix bugs in DotIdExp.semanticY
Commits pushed to stable at https://github.com/dlang/dmd https://github.com/dlang/dmd/commit/3c70f276e47c0b0033d7b6c1e2ba281c0f27db28 fix Issue 15117 - Unreasonable circular reference error via named mixin https://github.com/dlang/dmd/commit/d2ee18c7401da4c961a60b19241178f629e3ce84 Merge pull request #5118 from 9rnsr/fix_dotidexp