--- template t(alias T) { } static assert(!__traits(compiles, t!int)); // ok static assert(!__traits(compiles, t!Object)); // fails --- It also loses all qualifiers, e.g. this passes: --- template X(alias T) { alias X = T; } static assert(is(X!(const Object) == Object)); --- As a result e.g. `std.typetuple` module is broken for qualified types.
Passing int is now ok. Thanks for filing this about lost qualifiers though. For the qualifiers, I'm closing this in favour of Issue 20899.