[Issue 20054] getSymbolsByUDA no longer works on modules
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Mon Jul 15 13:42:58 UTC 2019
https://issues.dlang.org/show_bug.cgi?id=20054
Simen Kjaeraas <simen.kjaras at gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |simen.kjaras at gmail.com
--- Comment #1 from Simen Kjaeraas <simen.kjaras at 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);
}
--
More information about the Digitalmars-d-bugs
mailing list