Project

General

Profile

Misc #17035

is non-symbol key hash spread a bug or a feature?

Added by chucke (Tiago Cardoso) 7 months ago. Updated 7 months ago.

Status:
Closed
Priority:
Normal
Assignee:
-
[ruby-core:99204]

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) 7 months 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).

Also available in: Atom PDF