From: "duerst (Martin Dürst)" Date: 2013-10-16T13:03:55+09:00 Subject: [ruby-core:57899] [ruby-trunk - Feature #9025] Clarify the error message when calling a method with the wrong number of arguments Issue #9025 has been updated by duerst (Martin D��rst). phluid61 (Matthew Kerwin) wrote: > 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)" That's a good way to put it, and very close to Nerian's ArgumentError: wrong number of arguments (expected: 1, provided: 0) (close enough to really just be bikeshedding) > 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. Ruby is all about making it easier for the programmer. Even the smallest amount of debugging is too much when it can be eliminated by tweaking the error message. This is definitely finetuning, but it's not bikeshedding. ---------------------------------------- Feature #9025: Clarify the error message when calling a method with the wrong number of arguments https://bugs.ruby-lang.org/issues/9025#change-42494 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/