https://issues.dlang.org/show_bug.cgi?id=20275
Basile-z <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |[email protected] --- Comment #1 from Basile-z <[email protected]> --- little more clear: --- enum E { A } alias GlobalEnumMembers(T) = __traits(allMembers, T); void main() { pragma(msg, GlobalEnumMembers!E.stringof); with (S()) { pragma(msg, EnumMembers!E.stringof); // (*__withSym).tuple("A") } } struct S { alias EnumMembers = GlobalEnumMembers; } --- so "(*__withSym)" is just a `S` and ".tuple("A")" the member tuple, i.e the alias.While this is distrurbing, I don't see a bug. This is like --- enum E { A } alias GlobalEnumMembers(T) = __traits(allMembers, T); void main() { pragma(msg, GlobalEnumMembers!E.stringof); S s; { pragma(msg, s.EnumMembers!E.stringof); } } struct S { alias EnumMembers = GlobalEnumMembers; } --- which prints s.tuple("A"). The only thing is that `with(S())` creates a kind of anonymous/temp variable. voting for close as invalid. --
