blob: b959c71c62e4adf4cb659979ac53d80f3b307e2d [file] [log] [blame]
//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);
}