1 /*
2 REQUIRED_ARGS: -v
3 ---
4 fail_compilation/fail15616b.d(43): Error: none of the overloads of 'foo' are callable using argument types (double), candidates are:
5 fail_compilation/fail15616b.d(16):        fail15616b.foo(int a)
6 fail_compilation/fail15616b.d(19):        fail15616b.foo(int a, int b)
7 fail_compilation/fail15616b.d(28):        fail15616b.foo(int a, int b, int c)
8 fail_compilation/fail15616b.d(31):        fail15616b.foo(string a)
9 fail_compilation/fail15616b.d(34):        fail15616b.foo(string a, string b)
10 fail_compilation/fail15616b.d(37):        fail15616b.foo(string a, string b, string c)
11 fail_compilation/fail15616b.d(22):        fail15616b.foo(T)(T a) if (is(T == float))
12 fail_compilation/fail15616b.d(25):        fail15616b.foo(T)(T a) if (is(T == char))
13 ---
14 */
15 
foo(int a)16 void foo(int a)
17 {}
18 
foo(int a,int b)19 void foo(int a, int b)
20 {}
21 
22 void foo(T)(T a) if (is(T == float))
23 {}
24 
25 void foo(T)(T a) if (is(T == char))
26 {}
27 
foo(int a,int b,int c)28 void foo(int a, int b, int c)
29 {}
30 
foo(string a)31 void foo(string a)
32 {}
33 
foo(string a,string b)34 void foo(string a, string b)
35 {}
36 
foo(string a,string b,string c)37 void foo(string a, string b, string c)
38 {}
39 
40 
main()41 void main()
42 {
43     foo(3.14);
44 }
45