@@ -12975,7 +12975,7 @@ typedef struct {
1297512975
1297612976pm_binding_powers_t pm_binding_powers[PM_TOKEN_MAXIMUM] = {
1297712977 // 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 } ,
1297912979
1298012980 // if unless until while
1298112981 [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
1948019480 context_push(parser, PM_CONTEXT_RESCUE_MODIFIER);
1948119481
1948219482 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));
1948419484 context_pop(parser);
1948519485
1948619486 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_
2070120701 pm_token_t rescue = parser->current;
2070220702 parser_lex(parser);
2070320703
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));
2070520705 context_pop(parser);
2070620706
2070720707 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
2080720807 }
2080820808 }
2080920809
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));
2081120811 context_pop(parser);
2081220812
2081320813 return (pm_node_t *) pm_rescue_modifier_node_create(parser, value, &rescue, right);
0 commit comments