1 /*
2 TEST_OUTPUT:
3 ---
4 fail_compilation/fail1900.d(26): Error: template fail1900.Mix1a!().Foo matches more than one template declaration:
5 fail_compilation/fail1900.d(13):     Foo(ubyte x)
6 and
7 fail_compilation/fail1900.d(14):     Foo(byte x)
8 ---
9 */
10 
Mix1a()11 template Mix1a()
12 {
13     template Foo(ubyte x) {}
14     template Foo(byte x) {}
15 }
Mix1b()16 template Mix1b()
17 {
18     template Foo(int x) {}
19 }
20 
21 mixin Mix1a;
22 mixin Mix1b;
23 
test1900a()24 void test1900a()
25 {
26     alias x = Foo!1;
27 }
28 
29 /*
30 TEST_OUTPUT:
31 ---
32 fail_compilation/fail1900.d(41): Error: imports.fail1900b.Bar(short n) at fail_compilation/imports/fail1900b.d(2) conflicts with imports.fail1900a.Bar(int n) at fail_compilation/imports/fail1900a.d(2)
33 ---
34 */
35 
36 import imports.fail1900a;
37 import imports.fail1900b;
38 
test1900b()39 void test1900b()
40 {
41     enum x = Bar!1;
42 }
43 
44 /*
45 TEST_OUTPUT:
46 ---
47 fail_compilation/fail1900.d(65): Error: fail1900.Mix2b!().Baz(int x) at fail_compilation/fail1900.d(57) conflicts with fail1900.Mix2a!().Baz(byte x) at fail_compilation/fail1900.d(53)
48 ---
49 */
50 
Mix2a()51 template Mix2a()
52 {
53     template Baz(byte x) {}
54 }
Mix2b()55 template Mix2b()
56 {
57     template Baz(int x) {}
58 }
59 
60 mixin Mix2a;
61 mixin Mix2b;
62 
test1900c()63 void test1900c()
64 {
65     alias x = Baz!1;
66 }
67