http://d.puremagic.com/issues/show_bug.cgi?id=7836
Summary: NaNs inside associative array don't use normal FP equality Product: D Version: D2 Platform: x86 OS/Version: Windows Status: NEW Keywords: wrong-code Severity: normal Priority: P2 Component: druntime AssignedTo: nob...@puremagic.com ReportedBy: bearophile_h...@eml.cc --- Comment #0 from bearophile_h...@eml.cc 2012-04-05 17:45:03 PDT --- I don't know if this is a bug, or if here D/DMD is working as designed. I am not sure. This code shows that floating point NaNs are not tested with == inside associative arrays (because NaNs != NaNs): import std.stdio: writeln; void main() { int[double] aa; aa[double.nan] = 1; writeln(aa); aa[double.nan] = 2; writeln(aa); } Output DMD 2.059beta: [nan:1] [nan:2] Python uses == to compare dict (associative array) keys, so NaNs can't overwrite each other: >>> a = {} >>> a[float("nan")] = 1 >>> a {nan: 1} >>> a[float("nan")] = 2 >>> a {nan: 1, nan: 2} So maybe DMD has to act as Python in this case. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------