Actions
Bug #7038
closedArray#zip に配列以外のオブジェクトを指定した場合の例外がわかり辛い
Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]
Backport:
Description
=begin
1.9 以降でArray#zip に配列以外のオブジェクトを指定した場合の例外が NoMethodError ではわかり辛いのではないかと思います。
$ ruby -ve 'p [1,2,3].zip(1)'
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]
-e:1:in zip': undefined method
each' for 1:Fixnum (NoMethodError)
from -e:1:in `'
1.8 までだと以下のように TypeError でした。
$ ruby -ve 'p [1,2,3].zip(1)'
ruby 1.8.7 (2010-08-16 patchlevel 302) [i486-linux]
-e:1:in `zip': can't convert Fixnum into Array (TypeError)
from -e:1
1.9 以降では、to_ary に失敗した後で、each を試すようですが、それに失敗した時に 1.8 までと同様に TypeError にしてもらう方がわかりやすいのではないかと思いました。
=end
Updated by nobu (Nobuyoshi Nakada) over 11 years ago
- Status changed from Open to Closed
- % Done changed from 0 to 100
This issue was solved with changeset r36989.
Sho, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.
array.c, enum.c: TypeError in zip
- array.c (take_items), enum.c (enum_zip): raise TypeError at
non-enumerable objects, not NoMethodError. [ruby-dev:46145]
[Bug #7038] - vm_eval.c (rb_check_block_call): check_funcall variant with block
function.
Actions
Like0
Like0