[#65451] [ruby-trunk - Feature #10333] [PATCH 3/1] optimize: "yoda literal" == string — ko1@...

Issue #10333 has been updated by Koichi Sasada.

9 messages 2014/10/07

[ruby-core:65946] [ruby-trunk - Bug #10441] [Open] Wrong required argument count reported for **kwargs method ArgumentErrors

From: jxf+ruby@...
Date: 2014-10-28 14:02:00 UTC
List: ruby-core #65946
Issue #10441 has been reported by John Feminella.

----------------------------------------
Bug #10441: Wrong required argument count reported for **kwargs method ArgumentErrors
https://bugs.ruby-lang.org/issues/10441

* Author: John Feminella
* Status: Open
* Priority: Normal
* Assignee: 
* Category: 
* Target version: 
* ruby -v: ruby 2.1.3p242 (2014-09-19 revision 47630) [x86_64-linux]
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN
----------------------------------------
When collecting excess keyword arguments, Ruby's ArgumentError message doesn't count the `**kwargs` as possible arguments.

~~~
def foo(**kwargs); "args: #{kwargs}"; end
# => :foo

foo(1, 2, 3)
ArgumentError: wrong number of arguments (3 for 0)
from (pry):1:in `foo'
~~~

The expected result is something like "ArgumentError: wrong number of arguments (3 for 0..1)". Of course, this could lead to another sort of confusion, in that if you now try:

~~~
foo(1)
~~~

you would receive "ArgumentError: wrong number of arguments (1 for 0..1)". So I think `ArgumentError` should be refined to indicate the kinds of arguments expected: "ArgumentError: wrong number of arguments: 1 argument for 0 arguments and 1 keyword list".



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

In This Thread

Prev Next