https://issues.dlang.org/show_bug.cgi?id=12242
--- Comment #7 from Kenji Hara <[email protected]> --- One more test case of this issue: module test01; private mixin template MixTmp(T, int x) { template foo(U) if (is(U == T)) { enum foo = x; } } mixin MixTmp!(int, 1); mixin MixTmp!(long, 2); ------------ module test02; private mixin template MixTmp(T, int x) { template foo(U) if (is(U == T)) { enum foo = x; } } mixin MixTmp!(float, 3); mixin MixTmp!(real, 4); ------------ import test01, test02; import std.stdio; void main() { writeln( foo!int ); } In module test01 and test02, 'foo' make individual overload sets. And in module test03, the imported two overload sets 'foo' should be merged to a new overload set 'foo' which contains four mixed-in templates. --
