Project

General

Profile

Bug #18389

Updated by ioquatix (Samuel Williams) about 3 years ago

```ruby 
 class Foo 
   def boop 
     binding.irb 
   end 
  
   
  
	 def context 
   
	 end 
  
   
	
   def print 
   end 
 end 

 Foo.new.boop 
 ``` 

 It fails with: 

 ``` 
 > ruby ./test.rb 

 From: ./test.rb @ line 3 : 

     1: class Foo 
     2:     def boop 
  => 3:       binding.irb 
     4:     end 
     5:    
     6:  	 def context 
     7:  	 end 
     8:  	

 ./test.rb:9:in `print': wrong number of arguments (given 1, expected 0) (ArgumentError) 
	 from /Users/samuel/.gem/ruby/3.0.3/gems/irb-1.3.7/lib/irb/extend-command.rb:238:in `install_alias_method' 
	 from /Users/samuel/.gem/ruby/3.0.3/gems/irb-1.3.7/lib/irb/extend-command.rb:252:in `block in extend_object' 
	 from /Users/samuel/.gem/ruby/3.0.3/gems/irb-1.3.7/lib/irb/extend-command.rb:251:in `each' 
	 from /Users/samuel/.gem/ruby/3.0.3/gems/irb-1.3.7/lib/irb/extend-command.rb:251:in `extend_object' 
	 from /Users/samuel/.gem/ruby/3.0.3/gems/irb-1.3.7/lib/irb.rb:466:in `extend' 
	 from /Users/samuel/.gem/ruby/3.0.3/gems/irb-1.3.7/lib/irb.rb:466:in `initialize' 
	 from /Users/samuel/.gem/ruby/3.0.3/gems/irb-1.3.7/lib/irb.rb:959:in `new' 
	 from /Users/samuel/.gem/ruby/3.0.3/gems/irb-1.3.7/lib/irb.rb:959:in `irb' 
	 from <internal:prelude>:5:in `irb' 
	 from ./test.rb:3:in `boop' 
	 from ./test.rb:13:in `<main>' 
 ``` 

 I suggest that `binding.irb` should be a little bit less invasive to avoid these kinds of issues.

Back