From: "mame (Yusuke Endoh) via ruby-core" Date: 2025-06-24T02:45:54+00:00 Subject: [ruby-core:122587] [Ruby Misc#20968] `Array#fetch_values` unexpected method name in stack trace Issue #20968 has been updated by mame (Yusuke Endoh). Thanks, I fixed the issue by commit:3546cedde3f6f46f00fd67b73081cbfbb83144de. ``` $ ./miniruby -ve '[1,2].inject(:tap)' ruby 3.5.0dev (2025-06-24T02:39:58Z master 3546cedde3) +PRISM [x86_64-linux] -e:1:in 'Kernel#tap': wrong number of arguments (given 1, expected 0) (ArgumentError) from -e:1:in 'Enumerable#inject' from -e:1:in '
' ``` There was another problem that the class to which a method belonged was not displayed when an ArgumentError is raised at the time of argument passing. The commit fixes that problem as well: * ruby 3.4.2: `:89:in 'tap': ...` * master: `-e:1:in 'Kernel#tap': ...`. ---------------------------------------- Misc #20968: `Array#fetch_values` unexpected method name in stack trace https://bugs.ruby-lang.org/issues/20968#change-113822 * Author: koic (Koichi ITO) * Status: Closed ---------------------------------------- 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. ```console $ ruby -e '{k: 42}.fetch_values(:unknown)' -e:1:in 'Hash#fetch_values': key not found: :unknown (KeyError) from -e:1:in '
' $ 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 '
' ``` ## Actual The stack trace displays the `Array#fetch` method, which user is not aware of, along with the `` stack trace. ```console $ ruby -e '[1].fetch_values(42)' :211:in 'Array#fetch': index 42 outside of array bounds: -1...1 (IndexError) from :211:in 'block in Array#fetch_values' from :211:in 'Array#map!' from :211:in 'Array#fetch_values' from -e:1:in '
' ``` It likely requires an approach such as implementing it in C, as suggested in https://github.com/ruby/ruby/pull/11555. -- https://bugs.ruby-lang.org/ ______________________________________________ ruby-core mailing list -- ruby-core@ml.ruby-lang.org To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/