https://issues.dlang.org/show_bug.cgi?id=18314
Issue ID: 18314 Summary: std.traits.getSymbolsByUDA only considers the first symbol of an overload set Product: D Version: D2 Hardware: x86_64 OS: All Status: NEW Severity: normal Priority: P1 Component: phobos Assignee: nob...@puremagic.com Reporter: dechcaudron+dlang.issue.track...@protonmail.com Consider the following code: ``` enum lol; enum lal; struct A { @lal void foo(); @lol void foo(int a); } void main() { pragma(msg, "Tagged with @lal:"); static foreach(alias member; getSymbolsByUDA!(A, lal)) { pragma(msg, __traits(identifier, member)); } pragma(msg, "Tagged with @lol:"); static foreach(alias member; getSymbolsByUDA!(A, lol)) { pragma(msg, __traits(identifier, member)); } } ``` When building, `foo` only shows up in the first foreach, not in the second one. --