/* TEST_OUTPUT: --- fail_compilation/fail125.d(15): Error: array index `[2]` is outside array bounds `[0 .. 2]` fail_compilation/fail125.d(18): Error: template instance `fail125.main.recMove!(1, a, b)` error instantiating fail_compilation/fail125.d(25): instantiated from here: `recMove!(0, a, b)` --- */ template recMove(int i, X...) { void recMove() { X[i] = X[i+1]; // I know the code is logically wrong, should test (i+2 < X.length) static if (i+1 < X.length) recMove!(i+1, X); } } void main() { int a, b; recMove!(0, a, b); }