1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

Add back missing warning for duplicate keys in splatted hashes

This reverts the changes to parse.y in
a5b37262524ac39d2af13eea174486370a581c23 as they are not actually
needed and cause the warning for duplicate hash keys to not be
emitted.
This commit is contained in:
Jeremy Evans 2019-08-20 12:28:04 -07:00
parent a810f6cbef
commit 42adc5bc6b
Notes: git 2019-08-31 04:40:14 +09:00

12
parse.y
View file

@ -5151,6 +5151,12 @@ assocs : assoc
assocs = tail;
}
else if (tail) {
if (assocs->nd_head &&
!tail->nd_head && nd_type(tail->nd_next) == NODE_ARRAY &&
nd_type(tail->nd_next->nd_head) == NODE_HASH) {
/* DSTAR */
tail = tail->nd_next->nd_head->nd_head;
}
assocs = list_concat(assocs, tail);
}
$$ = assocs;
@ -5188,7 +5194,11 @@ assoc : arg_value tASSOC arg_value
| tDSTAR arg_value
{
/*%%%*/
$$ = list_append(p, NEW_LIST(0, &@$), $2);
if (nd_type($2) == NODE_HASH &&
!($2->nd_head && $2->nd_head->nd_alen))
$$ = 0;
else
$$ = list_append(p, NEW_LIST(0, &@$), $2);
/*% %*/
/*% ripper: assoc_splat!($2) %*/
}