[Issue 11724] D sends failed template instantiations to object file

d-bugmail at puremagic.com d-bugmail at puremagic.com
Wed Dec 11 08:10:33 PST 2013


https://d.puremagic.com/issues/show_bug.cgi?id=11724



--- Comment #4 from Iain Buclaw <ibuclaw at ubuntu.com> 2013-12-11 08:10:23 PST ---
(In reply to comment #1)
> Actually, the functions pass semantic just fine.

Yeah... I cracked open a debugger after raising this and realised the same.
Fails compilation in CallExp::semantic, *after* it has been added to the module
members list.

I poked about with omitting declared members when __traits(compiles) fails,
then omitting from within SCOPEstaticassert - but it seems that in both cases
causes *needed* symbols to be skipped leading to undefined symbol linker
errors.  Though I'm not immediately sure why symbols instantiated from static
assert() or __traits(compiles) would be needed, unless of course my poking
about was all wrong and had the adverse effect of:

static if (__traits(compiles, foo!double())) // instantiated and discarded.
{
   return foo!double();  // instantiated, but not added to members.
}

-- 
Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list