Actions
Bug #20968
open`Array#fetch_values` unexpected method name in stack trace
Status:
Open
Assignee:
-
Target version:
-
ruby -v:
ruby 3.4.0dev (2024-12-19T04:44:56Z master 2783868de2) +PRISM [x86_64-darwin23]
Description
It seems that the current Ruby implementation is displaying unexpected method name in stack trace.
Expected¶
Similar to Hash#fetch_values
, the method name Array#fetch_values
is expected to be displayed in the stack trace.
$ ruby -e '{k: 42}.fetch_values(:unknown)'
-e:1:in 'Hash#fetch_values': key not found: :unknown (KeyError)
from -e:1:in '<main>'
$ ruby -e '[1].fetch_values(42)'
-e:1:in 'Array#fetch_values': index 42 outside of array bounds: -1...1 (IndexError)
from -e:1:in '<main>'
Actual¶
The stack trace displays the Array#fetch
method, which user is not aware of, along with the <internal.array>
stack trace.
$ ruby -e '[1].fetch_values(42)'
<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 -e:1:in '<main>'
It likely requires an approach such as implementing it in C, as suggested in https://github.com/ruby/ruby/pull/11555.
Actions
Like0
Like1Like0Like0