/*
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);