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/