From: Shugo Maeda Date: 2009-02-27T13:25:31+09:00 Subject: [ruby-dev:38098] ブロック引数と括弧・引数なしsuper 前田です。 メソッドの引数に代入した場合、括弧・引数なしsuperでは代入後の値がスーパークラスの メソッドに渡されますが、ブロック引数の場合はもとのブロックが渡されるようです。 --- t.rb class A def foo(x, *y, &z) p x #=> 4 p y #=> [5, 6, 7] z.call #=> original block end end class B < A def foo(x, *y, &z) x = 4 y = [5, 6, 7] z = lambda { puts "replaced block" } super end end B.new.foo(1, 2, 3) { puts "original block" } --- $ ruby-1_8 -v t.rb ruby 1.8.7p5000 (2009-02-26 revision 22644) [i686-linux] 4 [5, 6, 7] original block $ ruby-trunk -v t.rb ruby 1.9.2dev (2009-02-03 trunk 21996) [i686-linux] 4 [5, 6, 7] original block これは意図された挙動でしょうか。 -- Shugo Maeda