-
Notifications
You must be signed in to change notification settings - Fork 138
Closed as not planned
Description
Description
I could change Object's constants in Ruby 2.6.6 and irb 1.0.0.
$ ruby -v
irb(main):001:0> RUBY_VERSION=1
(irb):1: warning: already initialized constant RUBY_VERSION
=> 1
irb(main):002:0> RUBY_VERSION
=> 1
irb(main):003:0> ENV=1
(irb):3: warning: already initialized constant ENV
=> 1
irb(main):004:0> ENV
=> 1
But IRB crashes when I do the same thing in irb 1.3.5.
$ ruby -v
ruby 3.0.1p64 (2021-04-05 revision 0fb782ee38) [arm64-darwin20]
$ irb -v
irb 1.3.5 (2021-04-03)
$ irb
irb(main):001:0> RUBY_VERSION=1
(irb):1: warning: already initialized constant RUBY_VERSION
=> 1
irb(main):002:0> RUBY_VERSION
/Users/jnito/.rbenv/versions/3.0.1/lib/ruby/3.0.0/reline.rb:178:in `<': comparison of Integer with String failed (ArgumentError)
from /Users/jnito/.rbenv/versions/3.0.1/lib/ruby/3.0.0/reline.rb:178:in `readmultiline'
from /Users/jnito/.rbenv/versions/3.0.1/lib/ruby/3.0.0/forwardable.rb:238:in `readmultiline'
from /Users/jnito/.rbenv/versions/3.0.1/lib/ruby/3.0.0/forwardable.rb:238:in `readmultiline'
from /Users/jnito/.rbenv/versions/3.0.1/lib/ruby/3.0.0/irb/input-method.rb:319:in `gets'
from /Users/jnito/.rbenv/versions/3.0.1/lib/ruby/3.0.0/irb.rb:529:in `block (2 levels) in eval_input'
from /Users/jnito/.rbenv/versions/3.0.1/lib/ruby/3.0.0/irb.rb:751:in `signal_status'
from /Users/jnito/.rbenv/versions/3.0.1/lib/ruby/3.0.0/irb.rb:528:in `block in eval_input'
from /Users/jnito/.rbenv/versions/3.0.1/lib/ruby/3.0.0/irb/ruby-lex.rb:267:in `lex'
from /Users/jnito/.rbenv/versions/3.0.1/lib/ruby/3.0.0/irb/ruby-lex.rb:236:in `block (2 levels) in each_top_level_statement'
from /Users/jnito/.rbenv/versions/3.0.1/lib/ruby/3.0.0/irb/ruby-lex.rb:233:in `loop'
from /Users/jnito/.rbenv/versions/3.0.1/lib/ruby/3.0.0/irb/ruby-lex.rb:233:in `block in each_top_level_statement'
from /Users/jnito/.rbenv/versions/3.0.1/lib/ruby/3.0.0/irb/ruby-lex.rb:232:in `catch'
from /Users/jnito/.rbenv/versions/3.0.1/lib/ruby/3.0.0/irb/ruby-lex.rb:232:in `each_top_level_statement'
from /Users/jnito/.rbenv/versions/3.0.1/lib/ruby/3.0.0/irb.rb:547:in `eval_input'
from /Users/jnito/.rbenv/versions/3.0.1/lib/ruby/3.0.0/irb.rb:481:in `block in run'
from /Users/jnito/.rbenv/versions/3.0.1/lib/ruby/3.0.0/irb.rb:480:in `catch'
from /Users/jnito/.rbenv/versions/3.0.1/lib/ruby/3.0.0/irb.rb:480:in `run'
from /Users/jnito/.rbenv/versions/3.0.1/lib/ruby/3.0.0/irb.rb:409:in `start'
from /Users/jnito/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/irb-1.3.5/exe/irb:11:in `<top (required)>'
from /Users/jnito/.rbenv/versions/3.0.1/bin/irb:23:in `load'
from /Users/jnito/.rbenv/versions/3.0.1/bin/irb:23:in `<main>'
$ irb
irb(main):001:0> ENV=1
(irb):1: warning: already initialized constant ENV
(Object doesn't support #inspect)
=>
/Users/jnito/.rbenv/versions/3.0.1/lib/ruby/3.0.0/reline.rb:201:in `[]': no implicit conversion of String into Integer (TypeError)
from /Users/jnito/.rbenv/versions/3.0.1/lib/ruby/3.0.0/reline.rb:201:in `inner_readline'
from /Users/jnito/.rbenv/versions/3.0.1/lib/ruby/3.0.0/reline.rb:175:in `readmultiline'
from /Users/jnito/.rbenv/versions/3.0.1/lib/ruby/3.0.0/forwardable.rb:238:in `readmultiline'
from /Users/jnito/.rbenv/versions/3.0.1/lib/ruby/3.0.0/forwardable.rb:238:in `readmultiline'
from /Users/jnito/.rbenv/versions/3.0.1/lib/ruby/3.0.0/irb/input-method.rb:319:in `gets'
from /Users/jnito/.rbenv/versions/3.0.1/lib/ruby/3.0.0/irb.rb:529:in `block (2 levels) in eval_input'
from /Users/jnito/.rbenv/versions/3.0.1/lib/ruby/3.0.0/irb.rb:751:in `signal_status'
from /Users/jnito/.rbenv/versions/3.0.1/lib/ruby/3.0.0/irb.rb:528:in `block in eval_input'
from /Users/jnito/.rbenv/versions/3.0.1/lib/ruby/3.0.0/irb/ruby-lex.rb:267:in `lex'
from /Users/jnito/.rbenv/versions/3.0.1/lib/ruby/3.0.0/irb/ruby-lex.rb:236:in `block (2 levels) in each_top_level_statement'
from /Users/jnito/.rbenv/versions/3.0.1/lib/ruby/3.0.0/irb/ruby-lex.rb:233:in `loop'
from /Users/jnito/.rbenv/versions/3.0.1/lib/ruby/3.0.0/irb/ruby-lex.rb:233:in `block in each_top_level_statement'
from /Users/jnito/.rbenv/versions/3.0.1/lib/ruby/3.0.0/irb/ruby-lex.rb:232:in `catch'
from /Users/jnito/.rbenv/versions/3.0.1/lib/ruby/3.0.0/irb/ruby-lex.rb:232:in `each_top_level_statement'
from /Users/jnito/.rbenv/versions/3.0.1/lib/ruby/3.0.0/irb.rb:547:in `eval_input'
from /Users/jnito/.rbenv/versions/3.0.1/lib/ruby/3.0.0/irb.rb:481:in `block in run'
from /Users/jnito/.rbenv/versions/3.0.1/lib/ruby/3.0.0/irb.rb:480:in `catch'
from /Users/jnito/.rbenv/versions/3.0.1/lib/ruby/3.0.0/irb.rb:480:in `run'
from /Users/jnito/.rbenv/versions/3.0.1/lib/ruby/3.0.0/irb.rb:409:in `start'
from /Users/jnito/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/irb-1.3.5/exe/irb:11:in `<top (required)>'
from /Users/jnito/.rbenv/versions/3.0.1/bin/irb:23:in `load'
from /Users/jnito/.rbenv/versions/3.0.1/bin/irb:23:in `<main>'
Result of irb_info
irb(main):001:0> irb_info
=>
Ruby version: 3.0.1
IRB version: irb 1.3.5 (2021-04-03)
InputMethod: ReidlineInputMethod with Reline 0.2.5
RUBY_PLATFORM: arm64-darwin20
Terminal Emulator
Terminal.app in macOS 11.3
Setting Files
Are you using ~/.irbrc and ~/.inputrc? => No.
Metadata
Metadata
Assignees
Labels
No labels