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)12template FA1(int b) 13 { 14 alias T = int; 15 static if (b) alias T = uint; 16 } FA2(int b)17template 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)34template FB1(int b) 35 { 36 static if (b) alias T = uint; 37 alias T = int; 38 } FB2(int b)39template 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