www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 7700] New: wrong semantic scope while ordering parameterized specialization

reply d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=7700

           Summary: wrong semantic scope while ordering parameterized
                    specialization
           Product: D
           Version: D2
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: nobody puremagic.com
        ReportedBy: dawg dawgfoto.de



cat > bug.d << CODE
template foo(short lo2, short hi2 : lo) {}
template foo(byte lo, byte hi : lo) {}

alias foo!(0, 0) foo00;
CODE

dmd -c bug

--------
bug.d(2): Error: undefined identifier lo, did you mean variable lo2?
--------

Both templates are match with conversion.
During ordering the first template is instantiated
with foo!(0, lo) and semantic is run in the wrong scope.

It seems that we need to create a scope and run semantic
while creating the dummy args.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Mar 13 2012
parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=7700




cat > bug.d << CODE
template foo(short lo2, short hi2 : lo2) {}
template foo(byte lo, byte hi : lo) {}

alias foo!(0, 0) foo00;
CODE

dmd -c bug

--------
bug.d(4): Error: undefined identifier lo, did you mean variable lo2?
bug.d(2): Error: undefined identifier lo2, did you mean variable lo?
bug.d(8): Error: template instance foo!(0,0) foo!(0,0) matches more than one
template declaration, bug.d(2):foo(short lo2,short hi2 : lo2) and
bug.d(4):foo(byte lo,byte hi : lo)
--------

There was a typo in the previous code example.

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