@@ -12975,7 +12975,7 @@ typedef struct {
12975
12975
12976
12976
pm_binding_powers_t pm_binding_powers[PM_TOKEN_MAXIMUM] = {
12977
12977
// rescue
12978
- [PM_TOKEN_KEYWORD_RESCUE_MODIFIER] = LEFT_ASSOCIATIVE( PM_BINDING_POWER_MODIFIER_RESCUE) ,
12978
+ [PM_TOKEN_KEYWORD_RESCUE_MODIFIER] = { PM_BINDING_POWER_MODIFIER_RESCUE, PM_BINDING_POWER_COMPOSITION, true, false } ,
12979
12979
12980
12980
// if unless until while
12981
12981
[PM_TOKEN_KEYWORD_IF_MODIFIER] = LEFT_ASSOCIATIVE(PM_BINDING_POWER_MODIFIER),
@@ -19480,7 +19480,7 @@ parse_expression_prefix(pm_parser_t *parser, pm_binding_power_t binding_power, b
19480
19480
context_push(parser, PM_CONTEXT_RESCUE_MODIFIER);
19481
19481
19482
19482
pm_token_t rescue_keyword = parser->previous;
19483
- pm_node_t *value = parse_expression(parser, binding_power , false, false, PM_ERR_RESCUE_MODIFIER_VALUE, (uint16_t) (depth + 1));
19483
+ pm_node_t *value = parse_expression(parser, pm_binding_powers[PM_TOKEN_KEYWORD_RESCUE_MODIFIER].right , false, false, PM_ERR_RESCUE_MODIFIER_VALUE, (uint16_t) (depth + 1));
19484
19484
context_pop(parser);
19485
19485
19486
19486
statement = (pm_node_t *) pm_rescue_modifier_node_create(parser, statement, &rescue_keyword, value);
@@ -20701,7 +20701,7 @@ parse_assignment_value(pm_parser_t *parser, pm_binding_power_t previous_binding_
20701
20701
pm_token_t rescue = parser->current;
20702
20702
parser_lex(parser);
20703
20703
20704
- pm_node_t *right = parse_expression(parser, binding_power , false, false, PM_ERR_RESCUE_MODIFIER_VALUE, (uint16_t) (depth + 1));
20704
+ pm_node_t *right = parse_expression(parser, pm_binding_powers[PM_TOKEN_KEYWORD_RESCUE_MODIFIER].right , false, false, PM_ERR_RESCUE_MODIFIER_VALUE, (uint16_t) (depth + 1));
20705
20705
context_pop(parser);
20706
20706
20707
20707
return (pm_node_t *) pm_rescue_modifier_node_create(parser, value, &rescue, right);
@@ -20807,7 +20807,7 @@ parse_assignment_values(pm_parser_t *parser, pm_binding_power_t previous_binding
20807
20807
}
20808
20808
}
20809
20809
20810
- pm_node_t *right = parse_expression(parser, binding_power , accepts_command_call_inner, false, PM_ERR_RESCUE_MODIFIER_VALUE, (uint16_t) (depth + 1));
20810
+ pm_node_t *right = parse_expression(parser, pm_binding_powers[PM_TOKEN_KEYWORD_RESCUE_MODIFIER].right , accepts_command_call_inner, false, PM_ERR_RESCUE_MODIFIER_VALUE, (uint16_t) (depth + 1));
20811
20811
context_pop(parser);
20812
20812
20813
20813
return (pm_node_t *) pm_rescue_modifier_node_create(parser, value, &rescue, right);
0 commit comments