[Issue 5609] New: struct opEquals doesn't conform to language specifications.
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Fri Feb 18 04:12:04 PST 2011
http://d.puremagic.com/issues/show_bug.cgi?id=5609
Summary: struct opEquals doesn't conform to language
specifications.
Product: D
Version: D2
Platform: x86_64
URL: http://www.digitalmars.com/d/2.0/operatoroverloading.h
tml#equals
OS/Version: Windows
Status: NEW
Severity: normal
Priority: P2
Component: DMD
AssignedTo: nobody at puremagic.com
ReportedBy: eatingstaples at gmail.com
--- Comment #0 from eatingstaples at gmail.com 2011-02-18 04:09:28 PST ---
Created an attachment (id=916)
Code demonstrating the issue.
The language specification states (with respect to opEquals in structs) "...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).
If one is a better match then the other, or one compiles and the other does
not, the one is selected.
Otherwise, an error results."
Structs, however, don't properly follow the "if one compiles and the other does
not" rule, at least not for the form a.opEquals(rvalue). Example attached.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
More information about the Digitalmars-d-bugs
mailing list