[prev in list] [next in list] [prev in thread] [next in thread] 

List:       ruby-core
Subject:    [ruby-core:51198] [ruby-trunk - Bug #6038] #instance_eval bug
From:       "nobu (Nobuyoshi Nakada)" <nobu () ruby-lang ! org>
Date:       2012-12-30 13:46:38
Message-ID: redmine.journal-35155.20121230224638 () ruby-lang ! org
[Download RAW message or body]


Issue #6038 has been updated by nobu (Nobuyoshi Nakada).

Category set to core
Assignee changed from nobu (Nobuyoshi Nakada) to matz (Yukihiro Matsumoto)
Target version set to Next Major


----------------------------------------
Bug #6038: #instance_eval bug
https://bugs.ruby-lang.org/issues/6038#change-35155

Author: ddebernardy (Denis de Bernardy)
Status: Assigned
Priority: Normal
Assignee: matz (Yukihiro Matsumoto)
Category: core
Target version: Next Major
ruby -v: 1.9.3


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



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

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic