https://issues.dlang.org/show_bug.cgi?id=19190
--- Comment #1 from Yuxuan Shui <yshu...@gmail.com> --- Sorry, wrong version of the code is attached. Here is the offending code: struct lr1 { lr1* a; } template proxy(T) { private alias G = gen!T; static if (is(typeof(G.str))) enum str = G.str; } template gen(T) if (is(T == struct)) { enum str = T.stringof; private enum xstr = gen!(lr1*).str; } template gen(T: S*, S) { private alias rc = proxy!S; //pragma(msg, __traits(allMembers, rc)); enum str = rc.str~"_ptr"; } enum tmp = proxy!lr1.str; --