| // https://issues.dlang.org/show_bug.cgi?id=2920 | |
| // recursive templates blow compiler stack | |
| // template_29_B. | |
| /* | |
| TEST_OUTPUT: | |
| --- | |
| fail_compilation/fail281.d(15): Error: template instance `fail281.foo!4294966795u` recursive expansion exceeded allowed nesting limit | |
| --- | |
| */ | |
| template foo(uint i) | |
| { | |
| static if (i > 0) | |
| { | |
| const uint bar = foo!(i - 1).bar; | |
| } | |
| else | |
| { | |
| const uint bar = 1; | |
| } | |
| } | |
| int main() | |
| { | |
| return foo!(uint.max).bar; | |
| } |