I like the "expected" wording. Also, wouldn't help a little to print the method name? May help to identify what's wrong faster.

--  
Fuad Saud
Sent with Sparrow (http://www.sparrowmailapp.com/?sig)


On Tuesday, October 15, 2013 at 11:34 PM, sawa (Tsuyoshi Sawada) wrote:

>  
> Issue #9025 has been updated by sawa (Tsuyoshi Sawada).
>  
>  
> "instead of" is even worse than "for". It is ambiguous: "1 argument was given instead of the expected 0" or "1 argument should be given instead of 0 that was given". "for" at least does not have that ambiguity.
> ----------------------------------------
> Feature #9025: Clarify the error message when calling a method withthe wrong number of arguments
> https://bugs.ruby-lang.org/issues/9025#change-42489
>  
> Author: Nerian (Gonzalo Rodrguez)
> Status: Open
> Priority: Normal
> Assignee:  
> Category:  
> Target version:  
>  
>  
> Currently when calling a method with the wrong number of arguments we get a confusing error message:
>  
> ArgumentError: wrong number of arguments (1 for 0)
>  
> That means that the method was meant to accept 0 arguments, but 1 was provided instead. This error message is confusing, and a large number of people had to search for its meaning. For example [1] has 11000 views.
>  
> I propose that we change the error message to something whose meaning is obvious. Examples:
>  
> * ArgumentError: wrong number of arguments (expected: 1, provided: 0)
> * ArgumentError: wrong number of arguments (1 instead of 0)
>  
> This ticket originated from this pull request: https://github.com/ruby/ruby/pull/367
>  
> [1] http://stackoverflow.com/questions/7537450/what-does-wrong-number-of-arguments-1-for-0-mean-in-ruby
>  
>  
> --  
> http://bugs.ruby-lang.org/
>  
>