From: "97jaz (Jon Zeppieri)" Date: 2013-11-12T06:58:30+09:00 Subject: [ruby-core:58284] [ruby-trunk - misc #8993] Request for clarification on method argument binding for keyword arguments Issue #8993 has been updated by 97jaz (Jon Zeppieri). No update on this? In case my previous posts were too confusing, here's the gist of it: As far as I can tell, MRI does not implement the behavior that #8040 describes, so I think this is a bug. ---------------------------------------- misc #8993: Request for clarification on method argument binding for keyword arguments https://bugs.ruby-lang.org/issues/8993#change-42874 Author: 97jaz (Jon Zeppieri) Status: Open Priority: Normal Assignee: 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/