int v1, v2; /* TEST_OUTPUT: --- fail_compilation/fail13203.d(15): Error: alias `fail13203.FA1!1.T` conflicts with alias `fail13203.FA1!1.T` at fail_compilation/fail13203.d(14) fail_compilation/fail13203.d(22): Error: template instance `fail13203.FA1!1` error instantiating fail_compilation/fail13203.d(20): Error: alias `fail13203.FA2!1.T` conflicts with alias `fail13203.FA2!1.T` at fail_compilation/fail13203.d(19) fail_compilation/fail13203.d(23): Error: template instance `fail13203.FA2!1` error instantiating --- */ template FA1(int b) { alias T = int; static if (b) alias T = uint; } template FA2(int b) { alias T = v1; static if (b) alias T = v2; } alias A1 = FA1!1; // type is not overloadable alias A2 = FA2!1; // variable symbol is not overloadable /* TEST_OUTPUT: --- fail_compilation/fail13203.d(36): Error: alias `fail13203.FB1!1.T` conflicts with alias `fail13203.FB1!1.T` at fail_compilation/fail13203.d(37) fail_compilation/fail13203.d(44): Error: template instance `fail13203.FB1!1` error instantiating fail_compilation/fail13203.d(41): Error: alias `fail13203.FB2!1.T` conflicts with alias `fail13203.FB2!1.T` at fail_compilation/fail13203.d(42) fail_compilation/fail13203.d(45): Error: template instance `fail13203.FB2!1` error instantiating --- */ template FB1(int b) { static if (b) alias T = uint; alias T = int; } template FB2(int b) { static if (b) alias T = v2; alias T = v1; } alias B1 = FB1!1; alias B2 = FB2!1;