digitalmars.D.bugs - [Issue 13583] New: Inconsistent naming of template arguments in
- via Digitalmars-d-bugs (54/54) Oct 07 2014 https://issues.dlang.org/show_bug.cgi?id=13583
https://issues.dlang.org/show_bug.cgi?id=13583 Issue ID: 13583 Summary: Inconsistent naming of template arguments in debug symbols Product: D Version: D2 Hardware: x86_64 OS: Windows Status: NEW Severity: normal Priority: P1 Component: DMD Assignee: nobody puremagic.com Reporter: r.sagitario gmx.de Compiling this code: /////////// class Token { string text; } class DList(T) { T x; } void replaceToken(DList!(Token) tokens) { } void main() { replaceToken(null); } //////////// with "dmd -g -m64 testcv.d" for win64, then dumping the debug info: "diadump testcv.exe >dia" yields ... Function : static, [00001080][0001:00000080], len = 0000000A, testcv.replaceToken Function attribute: Function info: FuncDebugStart : static, [00001088][0001:00000088] FuncDebugEnd : static, [00001088][0001:00000088] Data : rbp Relative, [00000010], Param, Type: class testcv.DList!(Token).DList *, tokens ... UserDefinedType: testcv.DList!(testcv.Token).DList BaseClass : object.Object, offset = 0x0 Data : this+0x10, Member, Type: class testcv.Token *, x UserDefinedType: testcv.DList!(Token).DList UserDefinedType: _M128A ... So, the function argument type is referred to as "testcv.DList!(Token).DList", while the full type description is "testcv.DList!(testcv.Token).DList". The full qualification of template arguments is sometimes missing. --
Oct 07 2014