Issue #8993 has been updated by marcandre (Marc-Andre Lafortune).


This is a bug and JRuby's behavior is correct.
----------------------------------------
misc #8993: Request for clarification on method argument binding for keyword arguments
https://bugs.ruby-lang.org/issues/8993#change-43656

Author: 97jaz (Jon Zeppieri)
Status: Assigned
Priority: Normal
Assignee: nobu (Nobuyoshi Nakada)
Category: core
Target version: 


=begin
I recently fixed keyword arguments in the JRuby interpreter, and I then found an example for which MRI and JRuby have different behavior:

  def foo(a, b, c=1, *d, e, f:2, **g)
    [a, b, c, d, e, f, g]
  end

  foo(1, 2, f:5)

MRI raises: 
  ArgumentError: wrong number of arguments (2 for 3+)

... whereas JRuby produces:

  [1, 2, 1, [], {:f=>5}, 2, {}]

I implemented the behavior in JRuby to conform with MRI, but in this case, I think that JRuby's behavior is correct, based upon the discussion in #8040.

Is there a spec for this feature somewhere (aside from the RSpec specs that I submitted to the RubySpec project)? In #7529, Matz refers to "the spec" for this feature, but I don't know where or what that is.
=end



-- 
http://bugs.ruby-lang.org/