http://d.puremagic.com/issues/show_bug.cgi?id=5933
Summary: Cannot retrieve the return type of an auto-return member function Product: D Version: D2 Platform: Other OS/Version: Mac OS X Status: NEW Keywords: rejects-valid Severity: normal Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: kenn...@gmail.com --- Comment #0 from kenn...@gmail.com 2011-05-06 02:19:58 PDT --- Test case: ------------------------------ struct X { auto x() { return 0; } } pragma(msg, typeof(X.init.x)); static assert(is(typeof(&X.init.x) == int delegate())); ------------------------------ () x.d(7): Error: static assert (is(typeof(__error) == int delegate())) is false ------------------------------ The expected output is 'int()' and the static assert should pass. The '__error' comes out because DMD thinks X.init.x is forward-referenced. This also causes a ICE when using with std.traits.ReturnType: ------------------------------ struct X { auto x() { return 0; } } static if (is(typeof(X.init.x) R == return)) {} ------------------------------ Assertion failed: (type), function AliasDeclaration, file declaration.c, line 376. Abort trap ------------------------------ -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------