mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
hash value of enumerable should be obtained from its elements; close #1658
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
##
|
||||
|
||||
Reference in New Issue
Block a user