From: Koichi Sasada Date: 2011-07-10T14:15:52+09:00 Subject: [ruby-dev:44076] [Ruby 1.9 - Bug #2402] super in instance_eval Issue #2402 has been updated by Koichi Sasada. Target version changed from 1.9.3 to 1.9.x すみません,1.9.4 送りで.... ---------------------------------------- Bug #2402: super in instance_eval http://redmine.ruby-lang.org/issues/2402 Author: Shugo Maeda Status: Assigned Priority: Normal Assignee: Koichi Sasada Category: Target version: 1.9.x ruby -v: ruby 1.9.2dev (2009-11-24 trunk 25909) [i686-linux] =begin instance_evalのブロック内でsuperを呼ぶと、instance_evalで変更された selfに対してsuperの呼び出しを行ってしまうようです。 defiant:build$ cat t.rb class Foo def foo p self end end class Bar < Foo def foo x = Object.new x.instance_eval do super end end end Bar.new.foo defiant:build$ ./ruby-trunk.1124 -v t.rb ruby 1.9.2dev (2009-11-24 trunk 25909) [i686-linux] # Foo#fooが呼ばれるのにselfがObjectという、ちょっとおかしなことになっています。 ちょっと自信がありませんが、一応パッチを添付します。 =end -- http://redmine.ruby-lang.org