Given program (dmd 2.013): void foo(T)() { pragma(msg, T.stringof); } void main() { foo!(bar)(); } I would expect the compiler to report an error about the unknown identifier, bar. Instead the program is accepted and the compiler prints "int". Is this a bug or is there a way to make it give an error?