[Issue 5609] struct opEquals doesn't conform to language specifications.

d-bugmail at puremagic.com d-bugmail at puremagic.com
Mon Aug 15 14:18:38 UTC 2022


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

RazvanN <razvan.nitu1305 at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
                 CC|                            |razvan.nitu1305 at gmail.com
         Resolution|---                         |INVALID

--- Comment #3 from RazvanN <razvan.nitu1305 at gmail.com> ---
This bug report highlights a misunderstanding of the spec [1]. It is clearly
stated: "Otherwise the expressions a.opEquals(b) and b.opEquals(a) are tried.
If both resolve to the same opEquals function, then the expression is rewritten
to be a.opEquals(b).". So, in the provided test case a.opEquals(b) and
b.opEquals(a) resolve to the same function therefore `a.opEquals(b)` is
selected. Only if opEquals did not resolve to the same function the compiler
would have tried to semantically analyze the 2 constructions.

So this bug report is invalid.

[1] https://dlang.org/spec/operatoroverloading.html#equals

--


More information about the Digitalmars-d-bugs mailing list