Feature #10108

NameError#name and nested constants

Added by Robin Dupret over 1 year ago. Updated over 1 year ago.




We wanted to bring a discussion around the behavior of NameError#name with nested constants. The result can be quite unexpected when we are dealing with them. For instance:

rescue NameError => e
  e.name # => :PHI

Having Math::PHI seems more expected. Rubinius works the same way as MRI while JRuby will return a symbol with the full path (i.e. :"Math::PHI"). Is there any reason why you are returning only the last part of the missing "path" ? At the very least, there is a documentation problem since NameError#name's documentation states:

name_error.name    ->  string or nil

but it always return a symbol.

Have a nice day !


#1 Updated by Nobuyoshi Nakada over 1 year ago

  • Tracker changed from Misc to Feature
  • Description updated (diff)

Do you want a method to return full qualified name, or an array of names?

#2 Updated by Vipul Amler over 1 year ago

A full qualified name would be a more appropriate and natural fit.

#3 Updated by Robin Dupret over 1 year ago

Yes, a full qualified name seems more appropriate and more consistent with the output of the error message. Thanks for the quick answer !

#4 Updated by Nobuyoshi Nakada over 1 year ago

  • Status changed from Open to Feedback

Good name is desired, as usual.

Also available in: Atom PDF