📘
[Bug #20968] Array#fetch_values でエラーになったときのスタックトレースが意図していないバグ報告
[Bug #20968] Array#fetch_values unexpected method name in stack trace
-
Aray#fetch_valuesでエラーになったときのスタックトレースで意図しないメソッド名が表示されているというバグ報告 - いまは以下のようなエラーメッセージが出力されます
{k: 42}.fetch_values(:unknown)
__END__
output:
test.rb:1:in 'Hash#fetch_values': key not found: :unknown (KeyError)
from test.rb:1:in '<main>'
[1].fetch_values(42)
__END__
output:
<internal:array>:211:in 'Array#fetch': index 42 outside of array bounds: -1...1 (IndexError)
from <internal:array>:211:in 'block in Array#fetch_values'
from <internal:array>:211:in 'Array#map!'
from <internal:array>:211:in 'Array#fetch_values'
from test.rb:1:in '<main>'
-
[1].fetch_values(42)の方で<internal:array>が出ちゃっているのが意図していないみたい - これは Ruby レイヤーで
#fetch_valuesを実装されていることが起因ぽいですね -
Integer#ceildivでも同様のスタックトレースがでるとコメントされていますね
1.ceildiv(0)
__END__
output:
<internal:numeric>:304:in 'Integer#div': divided by 0 (ZeroDivisionError)
from <internal:numeric>:304:in 'Integer#ceildiv'
from /tmp/vE0nmCZ/114:1:in '<main>'
- なのでこれ自体はバグというよりかは仕様みたいです
- ただ、エラー内容が
Array#fetch_valuesではなくてArray#fetchとして出力されてしまっている点は別に指摘されていますね
Discussion