www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 14104] New: aa with pointer key type doesn't find existing

https://issues.dlang.org/show_bug.cgi?id=14104

          Issue ID: 14104
           Summary: aa with pointer key type doesn't find existing value
           Product: D
           Version: unspecified
          Hardware: All
                OS: All
            Status: NEW
          Severity: regression
          Priority: P1
         Component: DMD
          Assignee: nobody puremagic.com
          Reporter: code dawg.eu

Found in Higgs, apparently introduced by
https://github.com/D-Programming-Language/dmd/pull/4159.

The key type is const(ubyte)*.

I tracked it down to differing TypeInfos.
On insertion it's TypeInfo_Pointer [1] for opIn it's TypeInfo_P [2].
The latter computes a different hash.

[1]:
https://github.com/D-Programming-Language/druntime/blob/f0c1e13d8bd547eed517b1ae17f085966bb165c1/src/object_.d#L361

[2]:
https://github.com/D-Programming-Language/druntime/blob/2024ca6d3e29362a2fc84ef51c0f73316259d645/src/rt/typeinfo/ti_ptr.d#L18

--
Feb 01 2015