Basically void foo(int k = 20)() { static if (k <= 0 || k >= 100) return; foo!(k-1)(); }Error Error: template instance `foo!-280` recursive expansion
Yep, that return is a dynamic return, not a static one.
static if (k <= 0 || k >= 100) {} else: foo!(k-1)();
will work.