http://d.puremagic.com/issues/show_bug.cgi?id=5957
Summary: Ambiguous mangling of module and template in template symbol args Product: D Version: D2 Platform: Other OS/Version: Mac OS X Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: kenn...@gmail.com --- Comment #0 from kenn...@gmail.com 2011-05-08 08:50:17 PDT --- Consider the program: ---------------------------- module y; import std.typecons; template f(alias s) { void f() { } } void g(){} void main() { f!( std.typecons )(); // A f!( f )(); // B f!( g )(); // C } ---------------------------- The manglings are: A: _D1y22__T1fS133std8typeconsZ1fFZv **^^^^^^^^^^^^^ B: _D1y12__T1fS41y1fZ1fFZv *^^^^ C: _D1y17__T1fS9_D1y1gFZvZ1fFZv *^^^^^^^^^ Here, the module 'std.typecons' and 'f' are simply encoded as a QualifiedName, unlike 'g' which is encoded as a MangledName. However, with this it is very hard for the demangler to tell the QualifiedName in A and B only have 13 and 4 characters respectively, instead of 133 and 41. There should be some separator between the 13/4 and the 3/1, or a type should be defined for module and templates, and encode them with MangledName instead of QualifiedName. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------