Analogous to https://issues.dlang.org/show_bug.cgi?id=22149: ``` void main() { static class Foo(T) {} static auto foo() { struct S {} return new Foo!S(); } static auto bar() { struct S {} return new Foo!S(); } auto f = foo(); auto b = bar(); // both fail assert(typeid(f) != typeid(b)); assert(typeid(f).name != typeid(b).name); } ```
@kinke updated dlang/dmd pull request #12928 "Fix Issue 22149 - TypeInfo_Struct names aren't unique, leading to botched equality semantics" fixing this issue: - Fix Issue 22150 - TypeInfo_Class names aren't unique, leading to botched equality semantics https://github.com/dlang/dmd/pull/12928
dlang/dmd pull request #12928 "Fix Issues 22149 & 22150 - TypeInfo names aren't unique, leading to botched equality semantics" was merged into master: - cb6f925d168ec1c5cd7ed86694acf1a1b44d3e74 by Martin Kinkelin: Fix Issue 22150 - TypeInfo_Class names aren't unique, leading to botched equality semantics By fully qualifying template arguments. https://github.com/dlang/dmd/pull/12928