Actions
Bug #22452
open`rb_equal` returns true for `NaN == NaN`
Bug #22452:
`rb_equal` returns true for `NaN == NaN`
Description
I noticed this while trying to cleanup and simplify rb_equal.
I would expect it to return nil.
Array#index is just an example, any core method, and even C extension relying on rb_equal is similarly impacted.
This bug is present on all Ruby versions, except for versions between 2.1 and 2.4.
The bug seem to have been re-introduced in 2.5 by 6e0e067de31511cebec01d176f628442371db879
JRuby seem to have the same behavior, but TruffleRuby correctly returnsnil.
Updated by byroot (Jean Boussier) 1 day ago
- Description updated (diff)
Updated by byroot (Jean Boussier) 1 day ago
- Related to Bug #1720: [NaN] == [NaN] が true になる added
Updated by byroot (Jean Boussier) 1 day ago
Possibly a duplicate of [Bug #1720] where it was established that Float::NaN == Float::NaN is "undefined" therefore OK.
It seems that the motivation was to not prevent optimization of rb_equal.
Actions