dmd/compiler/test/compilable/test9029.d
2022-07-09 18:53:07 +02:00

39 lines
844 B
D

// https://issues.dlang.org/show_bug.cgi?id=9029
enum NameOf(alias S) = S.stringof;
static assert(NameOf!int == "int");
enum BothMatch(alias S) = "alias";
enum BothMatch(T) = "type";
void foo9029() { }
struct Struct { }
static assert(BothMatch!int == "type");
static assert(BothMatch!(void function()) == "type");
static assert(BothMatch!BothMatch == "alias");
static assert(BothMatch!Struct == "type");
static assert(BothMatch!foo9029 == "alias");
static assert(BothMatch!5 == "alias");
// https://issues.dlang.org/show_bug.cgi?id=19884
mixin template genCtEvaluate()
{
void evaluate(alias op)() { }
}
struct S
{
mixin genCtEvaluate!() mixinEval;
alias evaluate = mixinEval.evaluate;
void evaluate() { }
}
alias List(Ops...) = Ops;
void main()
{
S g;
foreach (op; List!(0))
{
g.evaluate!op();
}
}