Thread overview
[Issue 7365] New: AAs broken for Object keys and values with opEquals
Jan 25, 2012
klickverbot
Jan 25, 2012
klickverbot
[Issue 7365] [Regression after 2.057] AAs broken for Object keys and values with opEquals
Jan 30, 2012
Walter Bright
Jan 30, 2012
klickverbot
Jan 30, 2012
klickverbot
Jan 31, 2012
Walter Bright
January 25, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=7365

           Summary: AAs broken for Object keys and values with opEquals
           Product: D
           Version: D2
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: critical
          Priority: P2
         Component: druntime
        AssignedTo: nobody@puremagic.com
        ReportedBy: code@klickverbot.at


--- Comment #0 from klickverbot <code@klickverbot.at> 2012-01-24 17:59:56 PST ---
Didn't fully track it down yet, but the following program asserts in getImpl
(mtype.c, line 4371) because AssociativeArray!(Object, TickDuration) can't be
instantiated (DMD 2.058 Git):

---
struct TickDuration {
  bool opEquals(ref const TickDuration rhs) const {
    return true;
  }
}

void main() {
  TickDuration[Object] aa;
  aa.keys;
}
---

Having a look at the gagged errors, it seems like the cause is related to the opEquals const correctness issue:
---
Error: function object.opEquals (Object lhs, Object rhs) is not callable using
argument types (const(Object),const(Object))
Error: cannot implicitly convert expression (this.key) of type const(Object) to
object.Object
Error: cannot implicitly convert expression (p.key) of type const(Object) to
object.Object
---

The error is encountered while generating the default opEquals for the Slot
type added in
https://github.com/D-Programming-Language/druntime/commit/cd7b477b83cc8a75a90258bd2ab63fa8c92ba10b.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
January 25, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=7365


klickverbot <code@klickverbot.at> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|critical                    |regression


--- Comment #1 from klickverbot <code@klickverbot.at> 2012-01-25 10:53:38 PST ---
Forgot to mark as regression.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
January 30, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=7365



--- Comment #2 from github-bugzilla@puremagic.com 2012-01-30 12:35:44 PST ---
Commit pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/ba943d54d4f97ec98261d5d00631aecbea7cdbea add test case for issue 7365

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
January 30, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=7365


Walter Bright <bugzilla@digitalmars.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
                 CC|                            |bugzilla@digitalmars.com
         Resolution|                            |WORKSFORME


--- Comment #3 from Walter Bright <bugzilla@digitalmars.com> 2012-01-30 12:36:36 PST ---
It works for me, but I added a test case for it anyway to the test suite.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
January 30, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=7365



--- Comment #4 from klickverbot <code@klickverbot.at> 2012-01-30 12:48:27 PST ---
Seems to WORKSFORME now as well, not sure when it was fixed or what the problem was beforeā€¦

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
January 30, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=7365


klickverbot <code@klickverbot.at> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
         Resolution|WORKSFORME                  |


--- Comment #5 from klickverbot <code@klickverbot.at> 2012-01-30 12:51:10 PST ---
Ah, screw it, now the auto-tester fails because of it as well: http://d.puremagic.com/test-results/test_data.ghtml?dataid=146136. Must have inadvertently introduced a workaround in my original client code, sorry for the noise.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
January 31, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=7365



--- Comment #6 from github-bugzilla@puremagic.com 2012-01-30 16:31:00 PST ---
Commit pushed to master at https://github.com/D-Programming-Language/druntime

https://github.com/D-Programming-Language/druntime/commit/048caceac7c678b16ccd0f6555502a6a622a5ba3
fix Issue 7365 - [Regression after 2.057] AAs broken for Object keys and values
with opEquals

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
January 31, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=7365


Walter Bright <bugzilla@digitalmars.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|REOPENED                    |RESOLVED
         Resolution|                            |FIXED


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