This dustmited testcase regressed with v2.103, failing to link due to an undefined TypeInfo (`_D24TypeInfo_xS3mod8Variable6__initZ`), introduced by https://github.com/dlang/dmd/pull/14844: ``` module mod; struct Variable { size_t toHash() const { return 0; } } enum hasInoutConstruction(T) = __traits(compiles, { struct S { T a; } }); struct Algebraic(T) { static if (hasInoutConstruction!T) { } } Algebraic!Variable foo(); struct S { Variable[] symbols; } void main() {} ```
@kinke updated dlang/dmd pull request #15868 "Draft: Tentative fix for missing struct TypeInfo symbols" fixing this issue: - Fix Bugzilla 24599 - Wrongly elided TypeInfo emission Reverting #14844, which caused such missing TypeInfos, *and* making sure the special TypeInfo members are fully analyzed and ready for codegen (otherwise hitting an assertion for the real-world project). https://github.com/dlang/dmd/pull/15868
dlang/dmd pull request #15868 "[stable] Fix Bugzilla 24599 - Wrongly elided TypeInfo emission" was merged into stable: - 0a859242d93ffc9fb0a5fdda921e9c393e5d11f9 by Martin Kinkelin: Fix Bugzilla 24599 - Wrongly elided TypeInfo emission Reverting #14844, which caused such missing TypeInfos, *and* making sure the special TypeInfo members are fully analyzed and ready for codegen (otherwise hitting an assertion for the real-world project). https://github.com/dlang/dmd/pull/15868
dlang/dmd pull request #16967 "Rebase stable6" was merged into master: - 9581a91ad65b85c80e9b33a84be731271cb045c8 by Martin Kinkelin: Fix Bugzilla 24599 - Wrongly elided TypeInfo emission (#15868) Reverting #14844, which caused such missing TypeInfos, *and* making sure the special TypeInfo members are fully analyzed and ready for codegen (otherwise hitting an assertion for the real-world project). https://github.com/dlang/dmd/pull/16967
dlang/dmd pull request #17069 "Merge stable" was merged into master: - 7ab98b931aa1fe40ae3bae73ab3a64a44bb1c696 by Martin Kinkelin: Fix Bugzilla 24599 - Wrongly elided TypeInfo emission (#15868) Reverting #14844, which caused such missing TypeInfos, *and* making sure the special TypeInfo members are fully analyzed and ready for codegen (otherwise hitting an assertion for the real-world project). https://github.com/dlang/dmd/pull/17069