[Issue 6744] Missing AA symbol with enum

d-bugmail at puremagic.com d-bugmail at puremagic.com
Fri Sep 30 07:25:42 PDT 2011


http://d.puremagic.com/issues/show_bug.cgi?id=6744



--- Comment #2 from Kenji Hara <k.hara.pg at gmail.com> 2011-09-30 07:25:02 PDT ---
This is not only the problem of AA, it is where template instantiation is
belongs to.

---- test.d
import traits;
void func()(){ X!() x; auto n = x.length; }
void main(){ func(); assert(0); }

---- traits.d
struct X(){ int length(){ return 0; } }
enum x = X!()();

---- command line
dmd test.d

---- output
OPTLINK (R) for Win32  Release 8.00.7
Copyright (C) Digital Mars 1989-2010  All rights reserved.
http://www.digitalmars.com/ctg/optlink.html
test2.obj(test2)
 Error 42: Symbol Undefined _D6traits6__T1XZ1X6lengthMFZi

semantic() runs against the type of X!() at both line 2 in test and line 2 of
traits, but its instantiation belongs to only traits, because the semantic runs
 first in traits.
But the module traits never generate .obj, then the symbol ob X!().length will
be lost.

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


More information about the Digitalmars-d-bugs mailing list