[ruby/prism] Ignore newlines in labelled lambda arguments
https://github.com/ruby/prism/commit/4ce6bcf182
This commit is contained in:
parent
a21237571e
commit
0dc35f0d30
Notes:
git
2024-12-16 15:51:42 +00:00
@ -14523,6 +14523,7 @@ parse_parameters(
|
|||||||
bool allows_trailing_comma,
|
bool allows_trailing_comma,
|
||||||
bool allows_forwarding_parameters,
|
bool allows_forwarding_parameters,
|
||||||
bool accepts_blocks_in_defaults,
|
bool accepts_blocks_in_defaults,
|
||||||
|
bool in_block,
|
||||||
uint16_t depth
|
uint16_t depth
|
||||||
) {
|
) {
|
||||||
pm_do_loop_stack_push(parser, false);
|
pm_do_loop_stack_push(parser, false);
|
||||||
@ -14687,7 +14688,7 @@ parse_parameters(
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case PM_TOKEN_LABEL: {
|
case PM_TOKEN_LABEL: {
|
||||||
if (!uses_parentheses) parser->in_keyword_arg = true;
|
if (!uses_parentheses && !in_block) parser->in_keyword_arg = true;
|
||||||
update_parameter_state(parser, &parser->current, &order);
|
update_parameter_state(parser, &parser->current, &order);
|
||||||
|
|
||||||
context_push(parser, PM_CONTEXT_DEFAULT_PARAMS);
|
context_push(parser, PM_CONTEXT_DEFAULT_PARAMS);
|
||||||
@ -15251,6 +15252,7 @@ parse_block_parameters(
|
|||||||
allows_trailing_comma,
|
allows_trailing_comma,
|
||||||
false,
|
false,
|
||||||
accepts_blocks_in_defaults,
|
accepts_blocks_in_defaults,
|
||||||
|
true,
|
||||||
(uint16_t) (depth + 1)
|
(uint16_t) (depth + 1)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -19405,7 +19407,7 @@ parse_expression_prefix(pm_parser_t *parser, pm_binding_power_t binding_power, b
|
|||||||
if (match1(parser, PM_TOKEN_PARENTHESIS_RIGHT)) {
|
if (match1(parser, PM_TOKEN_PARENTHESIS_RIGHT)) {
|
||||||
params = NULL;
|
params = NULL;
|
||||||
} else {
|
} else {
|
||||||
params = parse_parameters(parser, PM_BINDING_POWER_DEFINED, true, false, true, true, (uint16_t) (depth + 1));
|
params = parse_parameters(parser, PM_BINDING_POWER_DEFINED, true, false, true, true, false, (uint16_t) (depth + 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
lex_state_set(parser, PM_LEX_STATE_BEG);
|
lex_state_set(parser, PM_LEX_STATE_BEG);
|
||||||
@ -19430,7 +19432,7 @@ parse_expression_prefix(pm_parser_t *parser, pm_binding_power_t binding_power, b
|
|||||||
|
|
||||||
lparen = not_provided(parser);
|
lparen = not_provided(parser);
|
||||||
rparen = not_provided(parser);
|
rparen = not_provided(parser);
|
||||||
params = parse_parameters(parser, PM_BINDING_POWER_DEFINED, false, false, true, true, (uint16_t) (depth + 1));
|
params = parse_parameters(parser, PM_BINDING_POWER_DEFINED, false, false, true, true, false, (uint16_t) (depth + 1));
|
||||||
|
|
||||||
context_pop(parser);
|
context_pop(parser);
|
||||||
break;
|
break;
|
||||||
|
@ -9,3 +9,15 @@
|
|||||||
-> foo = bar do end
|
-> foo = bar do end
|
||||||
|
|
||||||
-> foo: bar do end
|
-> foo: bar do end
|
||||||
|
|
||||||
|
p{|a:
|
||||||
|
b|}
|
||||||
|
|
||||||
|
->(a:
|
||||||
|
b){}
|
||||||
|
|
||||||
|
->a:
|
||||||
|
b{}
|
||||||
|
|
||||||
|
->a:
|
||||||
|
{}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user