# Code: enum E { a } void fun(E e)() { } /// alias FA = fun!(E.a); struct S(E e) {} /// alias SA = S!(E.a); // stringof property static assert(S!(E.a).stringof == "S!(E.a)"); // fail - stringof is "S!cast(E)0" # Output of `dmd -D`: alias FA = fun!cast(E)0.fun; alias SA = S!cast(E)0.S; Expected result is "fun!(E.a).fun". At least it should be "fun!(cast(E)0).fun" std.experimental.logger documentation is broken due to this bug. eg. http://dlang.org/phobos-prerelease/std_experimental_logger_core.html#.trace alias trace = defaultLogFunction!cast(LogLevel)cast(ubyte)32u.defaultLogFunction( /* ... */ );
Nice find. Yes the formatting is utterly broken. Technically, this is a duplicate of 8044, for which I just opened a PR for. *** This issue has been marked as a duplicate of issue 8044 ***