This enhancement is of minor priority. A small C++ program: template <int x> int foo(int y) { unsigned int z = 10; return y < z; } int main() { foo<5>(6); return 0; } On it G++ 4.6 shows a warning, and it shows "x = 5" (the template instantiation value) too: ...>g++ -Wall test.cpp -o test test.cpp: In function 'int foo(int) [with int x = 5]': test.cpp:7:13: instantiated from here test.cpp:4:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] I'd like DMD to do something similar, and show the template instatiation values when it gives warnings: int foo(int x)() { return x; static if (x > 10) return x + 1; } int main() { return foo!(12)(); } DMD 2.054 gives: test.d(4): Warning: statement is not reachable This enhancement request applies to warnings like the signed/unsigned one in pull 119 too: https://github.com/D-Programming-Language/dmd/pull/119
The compiler does tell you when something broke inside a template (*and* give you parameters) Up to 2.063 : Failure with output: ----- onlineapp.d(2): Error: static assert (0) is false onlineapp.d(5): instantiated from here: foo!(12)