/* TEST_OUTPUT: --- fail_compilation/fail8373.d(21): Error: `fail8373.fun1` called with argument types `(int)` matches both: fail_compilation/fail8373.d(15): `fail8373.fun1!().fun1!int.fun1(int)` and: fail_compilation/fail8373.d(16): `fail8373.fun1!int.fun1(int)` fail_compilation/fail8373.d(22): Error: `fail8373.fun2` called with argument types `(int)` matches both: fail_compilation/fail8373.d(18): `fail8373.fun2!int.fun2(int)` and: fail_compilation/fail8373.d(19): `fail8373.fun2!().fun2!int.fun2(int)` --- */ template fun1(a...) { auto fun1(T...)(T args){ return 1; } } auto fun1(T...)(T args){ return 2; } auto fun2(T...)(T args){ return 2; } template fun2(a...) { auto fun2(T...)(T args){ return 1; } } enum x1 = fun1(0); enum x2 = fun2(0);