Actions
Feature #19978
closedNoMethodError and large objects should not create unwieldy error messages
Status:
Closed
Assignee:
-
Target version:
-
Description
Description¶
Currently, in the error message for NoMethodError
, the object in question is inspected and displayed to the user. This results in unwieldy error messages for large objects. This comes up most often for me when working with large hashes, but in principal it affects any object with an inspect
method which can produce large output.
Reproduce¶
There are many ways to reproduce this, but here is one. (Scales with the size of the object, so this gets out of hand quickly with, say, 1e7
as the upperbound.)
(1..1e3).to_a/=3
ruby -v
¶
ruby 3.2.2 (2023-03-30 revision e51014f9c0) [x64-mingw-ucrt]
Desired Behavior¶
Some kind of elision, e.g., for the above, the desired output could be something like
-e:1:in `<main>': undefined method `/' for [1, 2, 3, ..., 998, 999, 1000]:Array (NoMethodError)
(1..1e3).to_a/=3
^
At the very least, not showing the entire object (even if that means showing none of it) if the inspect
exceeds a certain length would be preferable.
Actions
Like0
Like0Like0Like0Like0