[#79440] [Ruby trunk Bug#13188] Reinitialize Ruby VM. — shyouhei@...
Issue #13188 has been updated by Shyouhei Urabe.
6 messages
2017/02/06
[#79441] Re: [Ruby trunk Bug#13188] Reinitialize Ruby VM.
— SASADA Koichi <ko1@...>
2017/02/06
On 2017/02/06 10:10, shyouhei@ruby-lang.org wrote:
[#79532] Immutable Strings vs Symbols — Daniel Ferreira <subtileos@...>
Hi,
15 messages
2017/02/15
[#79541] Re: Immutable Strings vs Symbols
— Rodrigo Rosenfeld Rosas <rr.rosas@...>
2017/02/15
Em 15-02-2017 05:05, Daniel Ferreira escreveu:
[#79543] Re: Immutable Strings vs Symbols
— Daniel Ferreira <subtileos@...>
2017/02/16
Hi Rodrigo,
[#79560] Re: Immutable Strings vs Symbols
— Rodrigo Rosenfeld Rosas <rr.rosas@...>
2017/02/16
Em 15-02-2017 22:39, Daniel Ferreira escreveu:
[ruby-core:79488] [Ruby trunk Bug#13196] Improve keyword argument errors when non-keyword arguments given
From:
sto.mar@...
Date:
2017-02-09 20:00:59 UTC
List:
ruby-core #79488
Issue #13196 has been updated by Marcus Stollsteimer. Nobuyoshi Nakada wrote: > wrong number of arguments (given 1, expected 0 with required keyword code) IMO still unclear, sounds somewhat like _"given 1 argument with required keyword code, but expected 0"_. Also, `code` would have to be quoted (_keyword `code'_) or otherwise marked as an identifier, or it could easily be interpreted as normal part of the message. Maybe something like this(?): ``` wrong number of arguments (given 1, expected 0; missing keywords: code, foo) ``` which would only require a slight change in your patch. I'm not sure whether it would be good enough, though. ---------------------------------------- Bug #13196: Improve keyword argument errors when non-keyword arguments given https://bugs.ruby-lang.org/issues/13196#change-62936 * Author: Olivier Lacan * Status: Open * Priority: Normal * Assignee: * Target version: * ruby -v: * Backport: 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN ---------------------------------------- Given the following method definition: ```ruby def explode(code:) puts "Boom!" end ``` If a Ruby user doesn't provide any arguments when calling the `explode` method, the following helpful feedback is given: ```ruby explode ArgumentError: missing keyword: code ``` But when a Ruby user mistakenly provides a regular argument, the exception message is obtuse and unhelpful: ```ruby explode "1234" ArgumentError: wrong number of arguments (given 1, expected 0) ``` This does not provide information to properly recover from the error. Worse, it's incorrect. It is not true that the method expected 0 arguments. The method expected 1 keyword argument. Instead, Ruby should respond something like: ```ruby explode "1234" ArgumentError: missing keyword: code, given "1234" which is not a keyword argument. ``` One could argue that this situation would call for a different error class, perhaps a `KeywordArgumentError` that would inherit from `ArgumentError`, but that would extend the scope of this feature request a bit too far in my mind. -- 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>