Project

General

Profile

Actions

Bug #12198

closed

Hash#== sometimes returns false incorrectly

Added by skalee (Sebastian Skalacki) over 8 years ago. Updated about 7 years ago.

Status:
Closed
Target version:
-
ruby -v:
ruby 2.4.0dev (2016-03-11 trunk 54086) [x86_64-darwin14]
[ruby-core:74460]

Description

Hi!

Sorry for lack of the accuracy in the bug title. I have some trouble with pinpointing the issue.

According to documentation, "two hashes are equal if they each contain the same number of keys and if each key-value pair is equal to (according to Object#==) the corresponding elements in the other hash." I was able to produce two hashes which satisfy this condition, however the method returns false. In other words, following happens:

e.class #=> Hash
r.class #=> Hash
e.size == r.size #=> true
e.each_pair.to_a == r.each_pair.to_a #=> true
e == r #=> false

That happens in Ruby 1.9.3, 2.3, 2.4 and probably in other versions as well. Pure Ruby, no gem could interfere.

Happy Easter ]:->


Files

problem.rb (1.69 KB) problem.rb Piece of code which instantiates that problematic Hash and illustrates the issue skalee (Sebastian Skalacki), 03/19/2016 01:31 PM
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0