Project

General

Profile

Actions

Bug #6038

closed

#instance_eval bug

Added by ddebernardy (Denis de Bernardy) almost 13 years ago. Updated about 6 years ago.

Status:
Closed
Target version:
[ruby-core:42688]

Description

instance_eval seems to change the object_id in some cases:

begin
stack = []
do_stuff = lambda do |&chain|
puts "Actual: #{chain.object_id}"
chain.call
end

chain = lambda do
if filter = stack.shift
filter.call(&chain)
end
end

puts "Expected: #{chain.object_id}"
stack << do_stuff
chain.instance_eval { @completed = false }
chain.call
end

RUBY_VERSION
=> "1.9.3"
begin
?> stack = []
do_stuff = lambda do |&chain|
?> puts "Actual: #{chain.object_id}"
chain.call
end

?> chain = lambda do
?> if filter = stack.shift

  filter.call(&chain)
end

end

?> puts "Expected: #{chain.object_id}"

stack << do_stuff
chain.instance_eval { @completed = false }
chain.call
end
Expected: 2152379740
Actual: 2152379520

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0