template canBeAlias(T...) if (T.length == 1) { static if (is(typeof({alias _ = T[0];}))) { enum canBeAlias = true; } else { enum canBeAlias = false; } }
pragma(msg, canBeAlias!canBeAlias); //prints "true" static assert(!canBeAlias!true); //passes static assert(canBeAlias!(canBeAlias!canBeAlias)); //passes?!What is going on here? `canBeAlias!canBeAlias` evaluates down to true, so why is `canBeAlias!true` false when `canBeAlias!(canBeAlias!canBeAlias)` is true?