yarv-dev:1048
From: SASADA Koichi <ko1 atdot.net>
Date: Thu, 20 Jul 2006 03:47:23 +0900
Subject: [yarv-dev:1048] Re: open> an error message when wrong number of arguments
ささだです。 sheepman wrote: > こんばんは、sheepman です。 > メソッドに間違った数の引数を渡した時のエラーメッセージが > ruby-1.8 や ruby-1.9 とは違っているので分かりにくいです。 うーん、これは難しいですね。面白い問題だなあ。 エラー表示というのは、 ファイル:行数:in `メソッド': エラーメッセージ となっているため、ここでいう「メソッド」とはエラーが発生した場所を示して います。で、この場合、foo の呼び出しに失敗しているので「hoge で失敗し た」というのは正しいんですよねぇ。正確には、「hoge メソッドにおいて、 foo の呼び出しに argument error だった」となるのが正しい。 どうしたもんですかね。メソッド呼び出し時のエラーには、まずコントロール スタックフレームを無理やり積んでから、という処理を足してでもこれをサポー トするべきなのかなぁ。 > $ cat t.rb > def foo(a) > end > > def hoge > foo() > end > > hoge() > > $ ruby-2.0 t.rb > t.rb:5:in `hoge': wrong number of arguments (0 for 1) (ArgumentError) > from t.rb:8:in `<main>' > > $ ruby-1.9 t.rb > t.rb:5:in `foo': wrong number of arguments (0 for 1) (ArgumentError) > from t.rb:5:in `hoge' > from t.rb:8 > > $ ruby-1.8 t.rb > t.rb:5:in `foo': wrong number of arguments (0 for 1) (ArgumentError) > from t.rb:5:in `hoge' > from t.rb:8 > -- // SASADA Koichi at atdot dot net -- ML: yarv-dev quickml.atdot.net Info: http://www.atdot.net/~ko1/quickml
1042 2006-07-19 21:59 [sheepman sheepman.sa] open> an error message when wrong number of arguments -> 1048 2006-07-20 03:47 ┗[ko1 atdot.net ] 1053 2006-07-20 10:44 ┗[matz ruby-lang.org ]