//https://issues.dlang.org/show_bug.cgi?id=19729 // PERMUTE_ARGS: module test19729; mixin template Templ(T) { this(T t) { } } class C // original TC { mixin Templ!int; mixin Templ!string; } class D // named { mixin Templ!int ti; mixin Templ!string ts; } class E // top level ctor wins { bool topLevelWins; mixin Templ!int; this(int){topLevelWins = true;} } class F // top level ctor wins even if not exact match { bool topLevelWins; mixin Templ!ubyte; this(int){topLevelWins = true;} } class G // same as F but change lexicographical order { bool topLevelWins; this(int){topLevelWins = true;} mixin Templ!ubyte; } void main() { auto c0 = new C("should work"); auto c1 = new C(42); auto d0 = new D("should work"); auto d1 = new D(42); auto e = new E(0); assert(e.topLevelWins); auto f = new F(ubyte(0)); assert(f.topLevelWins); auto g = new G(ubyte(0)); assert(g.topLevelWins); }