This is definitely wrong. In all existing cases, pragma(msg) of a template evaluates the template. RT!() evaluates to nothing (not even void, it's not an expression or declaration). This must be an error.

Currently, the argument must be either an expression, or a type (or in the case of a mixed tuple, it may contain both types and expressions). We should generate an error in pragma(msg), if it is not one of those two. There are no existing cases where an identifier or unevaluated expression is printed.