https://bugs.ruby-lang.org/https://bugs.ruby-lang.org/favicon.ico?17113305112012-02-17T04:26:42ZRuby Issue Tracking SystemRuby master - Bug #6038: #instance_eval bughttps://bugs.ruby-lang.org/issues/6038?journal_id=239302012-02-17T04:26:42Zmarcandre (Marc-Andre Lafortune)marcandre-ruby-core@marc-andre.ca
<ul></ul><p>Might be a good idea to keep things simple:</p>
<pre><code>do_stuff = lambda do |&block|
puts "Object id is #{block.object_id}"
end
chain = lambda{}
do_stuff.call(&chain)
chain.instance_eval{}
do_stuff.call(&chain)
</code></pre>
<p>Prints out:<br>
Block's object id is 2152284220<br>
Block's object id is 2152284140</p>
<p>Using an equivalent method to <code>do_stuff</code> doesn't exhibit the same problem. Here's a complete example:</p>
<pre><code>def stuff(&block)
puts "Object id is #{block.object_id}"
end
do_stuff = method(:stuff).to_proc
chain = lambda{}
stuff(&chain)
do_stuff.call(&chain)
chain.instance_eval{}
stuff(&chain)
do_stuff.call(&chain)
</code></pre>
<p>Object id is 2156158200<br>
Object id is 2156158200<br>
Object id is 2156158200<br>
Object id is 2156157980</p> Ruby master - Bug #6038: #instance_eval bughttps://bugs.ruby-lang.org/issues/6038?journal_id=245002012-03-11T17:33:32Zko1 (Koichi Sasada)
<ul><li><strong>Assignee</strong> set to <i>nobu (Nobuyoshi Nakada)</i></li></ul> Ruby master - Bug #6038: #instance_eval bughttps://bugs.ruby-lang.org/issues/6038?journal_id=248252012-03-18T18:46:10Zshyouhei (Shyouhei Urabe)shyouhei@ruby-lang.org
<ul><li><strong>Status</strong> changed from <i>Open</i> to <i>Assigned</i></li></ul> Ruby master - Bug #6038: #instance_eval bughttps://bugs.ruby-lang.org/issues/6038?journal_id=345012012-12-07T15:49:14Znobu (Nobuyoshi Nakada)nobu@ruby-lang.org
<ul></ul><p>=begin<br>
I don't think ((|pr2|)) is not guaranteed to be the same object as ((|pr1|)) where<br>
pr1 = proc {}<br>
pr2 = proc {|&pr| pr}.call(&pr1)<br>
=end</p> Ruby master - Bug #6038: #instance_eval bughttps://bugs.ruby-lang.org/issues/6038?journal_id=351552012-12-30T22:46:38Znobu (Nobuyoshi Nakada)nobu@ruby-lang.org
<ul><li><strong>Category</strong> set to <i>core</i></li><li><strong>Assignee</strong> changed from <i>nobu (Nobuyoshi Nakada)</i> to <i>matz (Yukihiro Matsumoto)</i></li><li><strong>Target version</strong> set to <i>3.0</i></li></ul> Ruby master - Bug #6038: #instance_eval bughttps://bugs.ruby-lang.org/issues/6038?journal_id=750002018-11-21T08:06:14Zmame (Yusuke Endoh)mame@ruby-lang.org
<ul><li><strong>Status</strong> changed from <i>Assigned</i> to <i>Closed</i></li></ul><p>It looks already fixed. I'm unsure if this behavior is guaranteed, though. Whether it is guaranteed or not, I think we can close this issue.</p>