www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 13583] New: Inconsistent naming of template arguments in


          Issue ID: 13583
           Summary: Inconsistent naming of template arguments in debug
           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() 

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,
                 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