On Wednesday, 20 March 2013 at 03:10:41 UTC, Jonathan M Davis
wrote:
The way == is defined is very clean and straightforward. There
_are_ bugs which
complicate things (e.g.
http://d.puremagic.com/issues/show_bug.cgi?id=3789 ),
but those can and will be fixed. The design itself is solid.
Thanks for the detailed explanation. If 3789 covers strings,
dynamic arrays and associative arrays and it were fixed then I
agree, it is clean and straightforward. If I read it correctly
with this fix it would change the current opEquals from
semantically shallow to semantically deep by default.
Semantically deep equality is comfortable to me, but I would
imagine by now there is a fair amount of code that might rely on
a false result from opEquals if the members (slices, associative
arrays) are not bitwise the same.
Thanks
Dan