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

