Issue #14176 has been reported by vfonic (Viktor Fonic).

----------------------------------------
Bug #14176: Calling method with keyword arguments inconsistent behavior
https://bugs.ruby-lang.org/issues/14176

* Author: vfonic (Viktor Fonic)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: ruby 2.4.2p198 (2017-09-14 revision 59899) [x86_64-darwin17]
* Backport: 2.3: UNKNOWN, 2.4: UNKNOWN
----------------------------------------
I (wrongly) created a method with the following signature:

def asd(first, options: {}); end

(notice that options is a keyword argument)

I called the method this way:

asd(arg, options)

And got the following misleading error:
ArgumentError: wrong number of arguments (given 2, expected 1)

It took me some time to realize that the options argument is a keyword argument:
> method(:asd)
Object#asd(first, ?)

It would be much more helpful if the error would mention this:
ArgumentError: wrong number of arguments (given 2, expected 1 and 1 keyword argument: options)

Thanks!



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

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>