Project

General

Profile

Feature #10108

Updated by nobu (Nobuyoshi Nakada) over 10 years ago

Hello, 

 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: 

 ~~~ruby 
 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"`). :"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 NameError#name's documentation states: 

 ~~~ 
 name_error.name      ->    string or nil 
 ~~~ 

 but it always return a symbol. 

 Have a nice day !

Back