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