http://d.puremagic.com/issues/show_bug.cgi?id=2816
------- Comment #9 from clugd...@yahoo.com.au 2009-04-09 04:24 ------- Error messages generated from my patch for the code below: bug.d(2): Error: static assert (0) is false bug.d(9): instantiatied from here: bar!() bug.d(14): 100 recursive instantiations from here: foo!(196) bug.d(19): 253 recursive instantiations from here: baz!(300) (Oops -- just realised I there's a typo in "instantiated" in the non-recursive messages. That's easy to fix). Note that it detects the recursive instantiation in foo!(), even though it is instantiated from three different places. -------- template bar() { static assert(0); } template foo(int N) { static if (N>0) { static if (N&1) alias foo!(N-3) foo; else alias foo!(N-1) foo; } else alias bar!() foo; } template baz(int M) { static if (M<50) { alias foo!(M*4) baz; } else alias baz!(M-1) baz; } void main() { int x = baz!(300); } --