digitalmars.D.bugs - AA's indexed by doubles bug
- Ben Hinkle (7/7) Mar 26 2005 int main() {
- =?UTF-8?B?VGhvbWFzIEvDvGhuZQ==?= (28/28) Mar 26 2005 -----BEGIN PGP SIGNED MESSAGE-----
- Dave (21/43) Mar 28 2005 In the hope of saving a little time tracking these down, the problem loo...
int main() { int[double] x; double d=22; x[d] = 44; assert( x[d] == 44 ); //fails return 0; }
Mar 26 2005
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Ben Hinkle wrote: | int main() { | int[double] x; | double d=22; | x[d] = 44; | assert( x[d] == 44 ); //fails | return 0; | } Added to DStress as http://dstress.kuehne.cn/run/associative_array_08.d http://dstress.kuehne.cn/run/associative_array_09.d http://dstress.kuehne.cn/run/associative_array_10.d http://dstress.kuehne.cn/run/associative_array_11.d http://dstress.kuehne.cn/run/associative_array_12.d http://dstress.kuehne.cn/run/associative_array_13.d http://dstress.kuehne.cn/run/associative_array_14.d http://dstress.kuehne.cn/run/associative_array_15.d http://dstress.kuehne.cn/run/associative_array_16.d http://dstress.kuehne.cn/run/associative_array_17.d Thomas -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.0 (MingW32) iD8DBQFCRawB3w+/yD4P9tIRAusKAJ95bfpnJY5PoDZIKNC535VMzIv7KQCgihde /4vmbhyQAF+b73zKpBGgaqI= =wd3P -----END PGP SIGNATURE-----
Mar 26 2005
In article <d24a39$3ic$1 digitaldaemon.com>, =?UTF-8?B?VGhvbWFzIEvDvGhuZQ==?= says...-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Ben Hinkle wrote: | int main() { | int[double] x; | double d=22; | x[d] = 44; | assert( x[d] == 44 ); //fails | return 0; | } Added to DStress as http://dstress.kuehne.cn/run/associative_array_08.d http://dstress.kuehne.cn/run/associative_array_09.d http://dstress.kuehne.cn/run/associative_array_10.d http://dstress.kuehne.cn/run/associative_array_11.d http://dstress.kuehne.cn/run/associative_array_12.d http://dstress.kuehne.cn/run/associative_array_13.d http://dstress.kuehne.cn/run/associative_array_14.d http://dstress.kuehne.cn/run/associative_array_15.d http://dstress.kuehne.cn/run/associative_array_16.d http://dstress.kuehne.cn/run/associative_array_17.d ThomasIn the hope of saving a little time tracking these down, the problem looks like it is in the return statement for the relevant _compare(...) methods for each of those types in phobos/std/typeinfo/ti_<type>.d. For example, in phobos/std/typeinfo/ti_double.d: | static int _compare(double d1, double d2) | { | if (d1 !<>= d2) // if either are NaN | { | if (isnan(d1)) | { if (isnan(d2)) | return 0; | return -1; | } | return 1; | } |// return (d1 < d2) ? -1 : 1; // <-- problem here | return (d1 < d2) ? -1 : (d1 > d2) ? 1 : 0; | } - Dave
Mar 28 2005