summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-enum-ext/mrblib/enum.rb
diff options
context:
space:
mode:
authorksss <[email protected]>2018-03-27 10:52:32 +0900
committerksss <[email protected]>2018-03-27 10:52:32 +0900
commitb1c8fad94a5371f8f31425af19fb0f7688a8338c (patch)
treefcacdbde1e4c44811a1a0c4c485771cb62d46d5d /mrbgems/mruby-enum-ext/mrblib/enum.rb
parent5a7ce01f128894b073451490ba230b4d0ec0674e (diff)
downloadmruby-b1c8fad94a5371f8f31425af19fb0f7688a8338c.tar.gz
mruby-b1c8fad94a5371f8f31425af19fb0f7688a8338c.zip
Should raise TypeError instead of NoMethodError
Diffstat (limited to 'mrbgems/mruby-enum-ext/mrblib/enum.rb')
-rw-r--r--mrbgems/mruby-enum-ext/mrblib/enum.rb7
1 files changed, 6 insertions, 1 deletions
diff --git a/mrbgems/mruby-enum-ext/mrblib/enum.rb b/mrbgems/mruby-enum-ext/mrblib/enum.rb
index 96249db28..b4ac67a5b 100644
--- a/mrbgems/mruby-enum-ext/mrblib/enum.rb
+++ b/mrbgems/mruby-enum-ext/mrblib/enum.rb
@@ -768,7 +768,12 @@ module Enumerable
def zip(*arg, &block)
result = block ? nil : []
- arg = arg.map{|a|a.to_a}
+ arg = arg.map do |a|
+ unless a.respond_to?(:to_a)
+ raise TypeError, "wrong argument type #{a.class} (must respond to :to_a)"
+ end
+ a.to_a
+ end
i = 0
self.each do |*val|