Issue #13087 has been reported by Tiago Cardoso.

----------------------------------------
Bug #13087: Regression of instance_exec behaviour in ruby 2.4
https://bugs.ruby-lang.org/issues/13087

* Author: Tiago Cardoso
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: 
* Backport: 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN
----------------------------------------
I've just caught up this running our test suite against the newly released ruby 2.4. Here is the repro gist:

```ruby

class A                                    
  def initialize(x)                        
    @x = x                                 
  end                                      
  def perform                              
    puts "performing #{@x} times"          
  end                                      
end                                        
                                           
                                           
puts "basic"                               
A.new(1).tap do |a|                        
  a.instance_exec do                       
    perform                                
  end                                      
end                                        
                                           
#puts "advanced"                           
A.new(1).tap do |a|                        
  a.instance_exec(A.new(3), &:perform)     
end                                        
                                           
```

The last one output "3 times in all ruby 2's except latest 2.4 . 

This seems to apply the to_proc symbol to the object itself, and not the argument of instance_exec, which is a regression. 




-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>