From: "nobu (Nobuyoshi Nakada)" Date: 2012-05-15T09:56:21+09:00 Subject: [ruby-core:45048] [ruby-trunk - Bug #6434][Rejected] Block passed implicitly via super Issue #6434 has been updated by nobu (Nobuyoshi Nakada). Status changed from Open to Rejected It's a spec. `super' inherits the given block if it's not given directly. You can call `super(default, &nil)' not to pass it. ---------------------------------------- Bug #6434: Block passed implicitly via super https://bugs.ruby-lang.org/issues/6434#change-26630 Author: trans (Thomas Sawyer) Status: Rejected Priority: Normal Assignee: Category: core Target version: 1.9.3 ruby -v: ruby 1.9.3p125 (2012-02-16 revision 34643) [x86_64-linux] =begin Block is being passed via super implicitly even though the method is explicit and does not pass the block when calling super. class H < Hash def initialize(default=nil, &block) super(default) end end H.new(0){} ArgumentError: wrong number of arguments from (pry):3:in `initialize' Hash#initialize doesn't allow both a default argument and a default_proc, which is the cause of this error. Which means the block is being passed up even though it should not be. =end -- http://bugs.ruby-lang.org/