summaryrefslogtreecommitdiffhomepage
path: root/mrblib/enum.rb
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2014-01-16 21:33:48 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2014-01-16 21:33:48 +0900
commitc7cff199dc14a7fb7a43910f885ca7fa9b2ccdfd (patch)
treee2179909fd18539d5a03ebcf4cba06a2702e7225 /mrblib/enum.rb
parente63c1e1d493bb97d4a299e2ab55c8aa6e46681e0 (diff)
downloadmruby-c7cff199dc14a7fb7a43910f885ca7fa9b2ccdfd.tar.gz
mruby-c7cff199dc14a7fb7a43910f885ca7fa9b2ccdfd.zip
hash value of enumerable should be obtained from its elements; close #1658
Diffstat (limited to 'mrblib/enum.rb')
-rw-r--r--mrblib/enum.rb9
1 files changed, 9 insertions, 0 deletions
diff --git a/mrblib/enum.rb b/mrblib/enum.rb
index 0593e1f04..e6aa682dd 100644
--- a/mrblib/enum.rb
+++ b/mrblib/enum.rb
@@ -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