🙌

[Bug #21698] エラーメッセージに Object# が付与されているバグ報告

に公開

[Bug #21698] Should simple ArgumentError refer to Object?

  • Ruby 3.4 で次のようなコードを実行した場合に 'foo' というメソッド名を参照してエラーメッセージを出力する
def foo(x, y)
end

foo(1)
# Ruby 3.4 => error: 'foo': wrong number of arguments (given 1, expected 2) (ArgumentError)
  • これが開発版の Ruby 4.0-dev では 'Object#foo' のような名称で出力される
def foo(x, y)
end

foo(1)
# Ruby 4.0 => 'Object#foo': wrong number of arguments (given 1, expected 2) (ArgumentError)
def foo
  raise
end

foo
# => error: 'Object#foo': unhandled exception
  • ただし "wrong number of arguments" エラーの場合は Object# の部分が表示されないバグがあったみたいで Ruby 3.4 時点では最初に提示されたコートでは Object# が表示されずにバグを修正した結果 Object# が表示されるようになったみたい
  • 最終的には NEWS の方にその旨を反映することでこのチケットは閉じられている
GitHubで編集を提案

Discussion