1 int v1, v2;
2 
3 /*
4 TEST_OUTPUT:
5 ---
6 fail_compilation/fail13203.d(15): Error: alias fail13203.FA1!1.T conflicts with alias fail13203.FA1!1.T at fail_compilation/fail13203.d(14)
7 fail_compilation/fail13203.d(22): Error: template instance fail13203.FA1!1 error instantiating
8 fail_compilation/fail13203.d(20): Error: alias fail13203.FA2!1.T conflicts with alias fail13203.FA2!1.T at fail_compilation/fail13203.d(19)
9 fail_compilation/fail13203.d(23): Error: template instance fail13203.FA2!1 error instantiating
10 ---
11 */
FA1(int b)12 template FA1(int b)
13 {
14     alias T = int;
15     static if (b) alias T = uint;
16 }
FA2(int b)17 template FA2(int b)
18 {
19     alias T = v1;
20     static if (b) alias T = v2;
21 }
22 alias A1 = FA1!1;   // type is not overloadable
23 alias A2 = FA2!1;   // variable symbol is not overloadable
24 
25 /*
26 TEST_OUTPUT:
27 ---
28 fail_compilation/fail13203.d(36): Error: alias fail13203.FB1!1.T conflicts with alias fail13203.FB1!1.T at fail_compilation/fail13203.d(37)
29 fail_compilation/fail13203.d(44): Error: template instance fail13203.FB1!1 error instantiating
30 fail_compilation/fail13203.d(41): Error: alias fail13203.FB2!1.T conflicts with alias fail13203.FB2!1.T at fail_compilation/fail13203.d(42)
31 fail_compilation/fail13203.d(45): Error: template instance fail13203.FB2!1 error instantiating
32 ---
33 */
FB1(int b)34 template FB1(int b)
35 {
36     static if (b) alias T = uint;
37     alias T = int;
38 }
FB2(int b)39 template FB2(int b)
40 {
41     static if (b) alias T = v2;
42     alias T = v1;
43 }
44 alias B1 = FB1!1;
45 alias B2 = FB2!1;
46