Project

General

Profile

Feature #11129

block-level hash destructuring only works for the last argument

Added by seanlinsley (Sean Linsley) over 4 years ago. Updated 4 months ago.

Status:
Open
Priority:
Normal
Assignee:
-
Target version:
-
[ruby-core:69094]

Description

[{a: 2}].each_with_index{ |a:, index| }
SyntaxError: unexpected tIDENTIFIER

[{a: 2}].each_with_index{ |(a:), index| }
SyntaxError: unexpected tLABEL

[{a: 2}].each_with_index.map{ |hash, index| [index, hash] }.map{ |index, a:| p [index, a] }
== [0, 2]

It seems like the second example should work, in the same way that parentheses in || destructure arrays.

History

Updated by seanlinsley (Sean Linsley) over 4 years ago

I'd rename this bug to something like "block-level hash destructuring only works for the last argument" if Redmine let you rename bugs...

Updated by hsbt (Hiroshi SHIBATA) over 4 years ago

  • Subject changed from each_with_index doesn't work with block-level hash destructuring to block-level hash destructuring only works for the last argument
#3

Updated by jeremyevans0 (Jeremy Evans) 4 months ago

  • Backport deleted (2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN)
  • ruby -v deleted (2.2)
  • Tracker changed from Bug to Feature

Also available in: Atom PDF