From: takkanm@... Date: 2016-11-01T12:48:38+00:00 Subject: [ruby-dev:49854] [Ruby trunk Bug#12887] Object#extendを引数無しで呼び出すとErrorとなるが、Module#includeとModule#prependはエラーとならない Issue #12887 has been reported by 三村 益隆. ---------------------------------------- Bug #12887: Object#extendを引数無しで呼び出すとErrorとなるが、Module#includeとModule#prependはエラーとならない https://bugs.ruby-lang.org/issues/12887 * Author: 三村 益隆 * Status: Open * Priority: Normal * Assignee: * ruby -v: * Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN ---------------------------------------- Object#extend を引数無しで呼び出すと、ArgumentErrorとなります。 https://bugs.ruby-lang.org/issues/6085 ~~~ $ ruby -e 'Module.new { extend }' -e:1:in `extend': wrong number of arguments (given 0, expected 1+) (ArgumentError) from -e:1:in `block in
' ~~~ しかし、同じように Mix-in する Module#include, Module#prepend を引数なしで呼び出してもエラーとなりません。 ~~~ $ ruby -e 'Module.new { include }' $ ruby -e 'Module.new { prepend }' ~~~ 似たような処理をする関数の引数のチェックは揃っていた方がわかりやすいと思いましたが、いかがでしょうか? https://github.com/ruby/ruby/pull/1470 https://github.com/takkanm/ruby/tree/check_arity_for_include_and_prepend -- https://bugs.ruby-lang.org/