https://issues.dlang.org/show_bug.cgi?id=20054
Simen Kjaeraas <simen.kja...@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |simen.kja...@gmail.com --- Comment #1 from Simen Kjaeraas <simen.kja...@gmail.com> --- The fix implemented for issue 19105 is just plain wrong, as the issue isn't fixed: import std.traits; struct A(Args...) {} struct S1 { // Recursive template expansion alias C = A!( getSymbolsByUDA!(S1, A) ); } struct S2 { // precompute the result: alias tmp = getSymbolsByUDA!(S2, A); // No recursive template expansion alias C = A!( getSymbolsByUDA!(S2, A) ); } Reduced test case: template test(alias T) { enum i = __traits(compiles, __traits(getMember, T, "C")); alias test = int; } struct A(Args...) {} struct S1 { // Recursive template expansion alias C = A!(test!S1); } struct S2 { // No error alias a = test!S2; alias C = A!(test!S2); } --