The following code used to compile but no longer does with dmd 2.084: ``` struct Base { int i; } struct A { Base base; alias base this; } struct B { A a; alias a this; } auto asGeneric(inout ref Base block) @nogc { return █ } B* thingie; auto foo() { return asGeneric(*thingie); } ``` Error: `cast(Base)(*thingie).a` is not an lvalue and cannot be modified
There's a PR at DMD: https://github.com/dlang/dmd/pull/9334
@look-at-me updated dlang/dmd pull request #9334 "#19652 Fix chained alias this." fixing this issue: - Fix Issue 19652 Fix chained alias this. https://github.com/dlang/dmd/pull/9334
dlang/dmd pull request #9334 "#19652 Fix chained alias this." was merged into stable: - b551b1a06a9050387442cd265dfd82f88ffaf944 by look-at-me: Fix Issue 19652 Fix chained alias this. https://github.com/dlang/dmd/pull/9334