Issue #9025 has been updated by phluid61 (Matthew Kerwin).


This is sort of a bike-shedding issue, and I'm always happy to throw paint at bike sheds!

In the past, in various languages and environments, I've tended to use:
"wrong number of arguments (given 1, expected 0)"

However, note that that StackOverflow question only has 9 upvotes.  Other questions from the user are things like "What does the ???+=??? operator do in Java?", and a couple of spoon-feedy "please fix/explain this code" questions.  While I agree that it would be nice to support ruby newbies with nice meaningful errors, I believe that the current message already conveys all the information required to comprehend it.  Critically "wrong number of arguments" is pretty universal for programmers, even without relying on English per se, and the smallest amount of debugging will show that one of those numbers corresponds with the invocation causing the error, and therefore the other number must be the correct "number of arguments" for that method.
----------------------------------------
Feature #9025: Clarify the error message when calling a method with the wrong number of arguments
https://bugs.ruby-lang.org/issues/9025#change-42491

Author: Nerian (Gonzalo Rodríguez)
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/