Misc #17035
closedis non-symbol key hash spread a bug or a feature?
Description
Coming from https://github.com/jruby/jruby/issues/6327#issuecomment-659577894
I've queried jruby about a bug I found, only to find that the behaviour is correct for the ruby versions jruby emulates.
The following:
{**{"a" => "b"}}
breaks in ruby < 2.7, but works in 2.7 .
I've looked at the 2.7 announcements and didn't find any. Is this a feature that ruby wants to keep (I'd very much like so) ? Or was this accidental, and unlikely to be maintained in the long run?
Updated by jeremyevans0 (Jeremy Evans) over 3 years ago
- Status changed from Open to Closed
chucke (Tiago Cardoso) wrote:
{**{"a" => "b"}}
breaks in ruby < 2.7, but works in 2.7 .
This is an expected new feature in ruby 2.7, and will not break in future ruby versions. **
is the keyword splat operator. In ruby <2.7, "a"
is not a valid keyword key, but in ruby 2.7, it is (you can pass it as a keyword if a method accepts arbitrary keywords).