| // REQUIRED_ARGS: -m64 |
| /* |
| TEST_OUTPUT: |
| --- |
| fail_compilation/fail238_m64.d(21): Error: cannot implicitly convert expression `"a"` of type `string` to `ulong` |
| fail_compilation/fail238_m64.d(24): Error: cannot implicitly convert expression `X!()` of type `void` to `const(string)` |
| fail_compilation/fail238_m64.d(29): Error: template instance `fail238_m64.A!"a"` error instantiating |
| fail_compilation/fail238_m64.d(35): instantiated from here: `M!(q)` |
| fail_compilation/fail238_m64.d(35): while evaluating `pragma(msg, M!(q))` |
| --- |
| */ |
| |
| // https://issues.dlang.org/show_bug.cgi?id=581 |
| // Error message w/o line number in dot-instantiated template |
| template X(){} |
| |
| template D(string str){} |
| |
| template A(string str) |
| { |
| static if (D!(str[str])) |
| {} |
| else |
| const string A = .X!(); |
| } |
| |
| template M(alias B) |
| { |
| const string M = A!("a"); |
| } |
| |
| void main() |
| { |
| int q = 3; |
| pragma(msg, M!(q)); |
| } |