Skip to content

Commit

Permalink
[ruby/prism] Allow newline before block locals
Browse files Browse the repository at this point in the history
  • Loading branch information
kddnewton authored and matzbot committed Mar 13, 2024
1 parent 248cf0e commit a6582ac
Showing 1 changed file with 15 additions and 11 deletions.
26 changes: 15 additions & 11 deletions prism/prism.c
Expand Up @@ -13275,18 +13275,22 @@ parse_block_parameters(
}

pm_block_parameters_node_t *block_parameters = pm_block_parameters_node_create(parser, parameters, opening);
if ((opening->type != PM_TOKEN_NOT_PROVIDED) && accept1(parser, PM_TOKEN_SEMICOLON)) {
do {
expect1(parser, PM_TOKEN_IDENTIFIER, PM_ERR_BLOCK_PARAM_LOCAL_VARIABLE);
bool repeated = pm_parser_parameter_name_check(parser, &parser->previous);
pm_parser_local_add_token(parser, &parser->previous);
if ((opening->type != PM_TOKEN_NOT_PROVIDED)) {
accept1(parser, PM_TOKEN_NEWLINE);

pm_block_local_variable_node_t *local = pm_block_local_variable_node_create(parser, &parser->previous);
if (repeated) {
pm_node_flag_set_repeated_parameter((pm_node_t *)local);
}
pm_block_parameters_node_append_local(block_parameters, local);
} while (accept1(parser, PM_TOKEN_COMMA));
if (accept1(parser, PM_TOKEN_SEMICOLON)) {
do {
expect1(parser, PM_TOKEN_IDENTIFIER, PM_ERR_BLOCK_PARAM_LOCAL_VARIABLE);
bool repeated = pm_parser_parameter_name_check(parser, &parser->previous);
pm_parser_local_add_token(parser, &parser->previous);

pm_block_local_variable_node_t *local = pm_block_local_variable_node_create(parser, &parser->previous);
if (repeated) {
pm_node_flag_set_repeated_parameter((pm_node_t *)local);
}
pm_block_parameters_node_append_local(block_parameters, local);
} while (accept1(parser, PM_TOKEN_COMMA));
}
}

return block_parameters;
Expand Down

0 comments on commit a6582ac

Please sign in to comment.