NameError#name and nested constants
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:
begin Math::PHI rescue NameError => e e.name # => :PHI end
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 !