Issue #10118 has been updated by Yukihiro Matsumoto.

Status changed from Open to Feedback

If you are JavaScript programmer with less Ruby experience, it might be confusing.
But should we change the language for those less experienced users, with introducing incompatibility?

Matz.


----------------------------------------
Feature #10118: Double splat for non-symbol keys
https://bugs.ruby-lang.org/issues/10118#change-48257

* Author: Tsuyoshi Sawada
* Status: Feedback
* Priority: Normal
* Assignee: 
* Category: 
* Target version: 
----------------------------------------
The double splat operator ** only seems to work with hashes whose keys are symbols. It will not work when a key is a string, for example. This is true for both ways; for construction:

    def foo **; end
    foo(:a => 3) #=> nil
    foo("a" => 3) #=> ArgumentError: wrong number of arguments (1 for 0)

and destruction:

    def bar *; end
    bar(**{:a => 3}) #=> nil
    bar(**{"a" => 3}) #=> TypeError: wrong argument type String (expected Symbol)

This is confusing. I propose that the double splat syntax should be extended so that it works even when the keys are not symbols.



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