Skip to content

Commit 6767117

Browse files
haldunmatzbot
authored andcommitted
[ruby/prism] Fix splat after kwsplat
ruby/prism@70c1cd480f
1 parent 4b4c94b commit 6767117

File tree

2 files changed

+6
-0
lines changed

2 files changed

+6
-0
lines changed

prism/prism.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14190,6 +14190,9 @@ parse_arguments(pm_parser_t *parser, pm_arguments_t *arguments, bool accepts_for
1419014190
if (match4(parser, PM_TOKEN_PARENTHESIS_RIGHT, PM_TOKEN_COMMA, PM_TOKEN_SEMICOLON, PM_TOKEN_BRACKET_RIGHT)) {
1419114191
pm_parser_scope_forwarding_positionals_check(parser, &operator);
1419214192
argument = (pm_node_t *) pm_splat_node_create(parser, &operator, NULL);
14193+
if (parsed_bare_hash) {
14194+
pm_parser_err_previous(parser, PM_ERR_ARGUMENT_SPLAT_AFTER_ASSOC_SPLAT);
14195+
}
1419314196
} else {
1419414197
pm_node_t *expression = parse_value_expression(parser, PM_BINDING_POWER_DEFINED, false, false, PM_ERR_EXPECT_EXPRESSION_AFTER_SPLAT, (uint16_t) (depth + 1));
1419514198

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
def f(*, **); p(**, *); end
2+
^ unexpected `*` splat argument after a `**` keyword splat argument
3+

0 commit comments

Comments
 (0)