Bug #1843
closedSymbol#inspect raises exception
Description
=begin
If you can create an object, I think you should always be able to inspect it.
However Symbol#inspect raises an exception if it was made from a string with an invalid encoding.
"hello\xff".to_sym.inspect
ArgumentError: invalid byte sequence in UTF-8
from (irb):26:ininspect' from (irb):26 from /usr/local/bin/irb19:12:in
'
Note that the to_sym is quite happy; it's the inspect which fails.
"hello\xff".to_sym; nil
=> nil
This means you cannot handle such objects in irb.
s = :"hello\xff"
ArgumentError: invalid byte sequence in UTF-8
from /usr/local/lib/ruby/1.9.1/irb/inspector.rb:84:ininspect' from /usr/local/lib/ruby/1.9.1/irb/inspector.rb:84:in
block in module:IRB'
from /usr/local/lib/ruby/1.9.1/irb/inspector.rb:30:incall' from /usr/local/lib/ruby/1.9.1/irb/inspector.rb:30:in
inspect_value'
from /usr/local/lib/ruby/1.9.1/irb/context.rb:259:ininspect_last_value' from /usr/local/lib/ruby/1.9.1/irb.rb:301:in
output_value'
from /usr/local/lib/ruby/1.9.1/irb.rb:150:inblock (2 levels) in eval_input' from /usr/local/lib/ruby/1.9.1/irb.rb:263:in
signal_status'
from /usr/local/lib/ruby/1.9.1/irb.rb:146:inblock in eval_input' from /usr/local/lib/ruby/1.9.1/irb/ruby-lex.rb:244:in
block (2 levels) in each_top_level_statement'
from /usr/local/lib/ruby/1.9.1/irb/ruby-lex.rb:230:inloop' from /usr/local/lib/ruby/1.9.1/irb/ruby-lex.rb:230:in
block in each_top_level_statement'
from /usr/local/lib/ruby/1.9.1/irb/ruby-lex.rb:229:incatch' from /usr/local/lib/ruby/1.9.1/irb/ruby-lex.rb:229:in
each_top_level_statement'
from /usr/local/lib/ruby/1.9.1/irb.rb:145:ineval_input' from /usr/local/lib/ruby/1.9.1/irb.rb:69:in
block in start'
from /usr/local/lib/ruby/1.9.1/irb.rb:68:incatch' from /usr/local/lib/ruby/1.9.1/irb.rb:68:in
start'
from /usr/local/bin/irb19:12:in `'Maybe IRB bug!!
=end