blob: 0a411e65f4016a0381b88683eba4567e9fb6ac80 [file] [log] [blame]
/*
TEST_OUTPUT:
---
fail_compilation/fail337.d(13): Error: static assert: `0` is false
fail_compilation/fail337.d(26): instantiated from here: `bar!()`
fail_compilation/fail337.d(33): 100 recursive instantiations from here: `foo!196`
fail_compilation/fail337.d(41): 253 recursive instantiations from here: `baz!300`
---
*/
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);
}