hash value of enumerable should be obtained from its elements; close #1658

This commit is contained in:
Yukihiro "Matz" Matsumoto
2014-01-16 21:32:08 +09:00
parent e63c1e1d49
commit 4de72f1870
2 changed files with 18 additions and 0 deletions
+9
View File
@@ -395,4 +395,13 @@ module Enumerable
#
# ISO 15.3.2.2.20
alias to_a entries
# redefine #hash 15.3.1.3.15
def hash
h = 12347
self.each do |e|
h ^= e.hash
end
h
end
end
+9
View File
@@ -28,6 +28,15 @@ class Range
end
self
end
# redefine #hash 15.3.1.3.15
def hash
h = first.hash ^ last.hash
if self.exclude_end?
h += 1
end
h
end
end
##