Issue #8072 has been updated by Yui NARUSE. Status changed from Feedback to Closed Applied in changeset r45138. ---------- merge revision(s) 44412,44413,44414,44420,44421: [Backport #9298] test_method.rb, test_proc.rb: suppress warnings * test/ruby/test_method.rb: suppress warnings in verbose mode. * test/ruby/test_proc.rb: ditto. * proc.c (rb_iseq_min_max_arity): maximum argument is unlimited if having rest keywords argument. [ruby-core:53298] [Bug #8072] * iseq.c (rb_iseq_parameters): push argument type symbol only for unnamed rest keywords argument. * compile.c (iseq_set_arguments): set arg_keyword_check from nd_cflag, which is set by parser. internal ID is used for unnamed keyword rest argument, which should be separated from no keyword check. * iseq.c (rb_iseq_parameters): if no keyword check, keyword rest is present. * parse.y (new_args_tail_gen): set keywords check to nd_cflag, which equals to that keyword rest is not present. ---------------------------------------- Backport #8072: Method#arity for keyword arguments https://bugs.ruby-lang.org/issues/8072#change-45423 * Author: Marc-Andre Lafortune * Status: Closed * Priority: Normal * Assignee: Marc-Andre Lafortune ---------------------------------------- I would expect the following two methods to have the same arity: def old_way(req, options = {}); end def new_way(req, **options); end method(:new_way).arity # => 1, should be -2 -- http://bugs.ruby-lang.org/