www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 6526] New: Disambiguate mangling of AA literals


           Summary: Disambiguate mangling of AA literals
           Product: D
           Version: 2.040
          Platform: Other
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: nobody puremagic.com
        ReportedBy: sean invisibleduck.org

--- Comment #0 from Sean Kelly <sean invisibleduck.org> 2011-08-18 09:23:05 PDT
The function:

   fn!([1:2, 3:4])();

is mangled as:


The pertinent part being the way associative arrays are mangled:


The type is "Hii", so an AA of int->int.  But then the value is "A2i1i2i3i4",
which taken by itself suggests an array literal, not an AA literal.  This is
the only instance that I've encountered where the determined type has to be
communicated to the value parser so it can demangle things correctly (since it
would be otherwise treated as a plain old array literal and represented as
"[1,2]").  It would be better if the representation for this AA were:


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