Actions
Bug #13087
closedRegression of instance_exec behaviour in ruby 2.4
Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-linux]
Description
I've just caught up this running our test suite against the newly released ruby 2.4. Here is the repro gist:
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.
Updated by chucke (Tiago Cardoso) almost 8 years ago
- ruby -v set to ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-linux]
Updated by nobu (Nobuyoshi Nakada) almost 8 years ago
- Is duplicate of Bug #13074: When executing instance_exec with symbol.to_proc, it ignores first argument. added
Updated by nobu (Nobuyoshi Nakada) almost 8 years ago
- Status changed from Open to Closed
Actions
Like0
Like0Like0Like0