diff options
| author | Kevin Newton <kddnewton@gmail.com> | 2024-02-01 11:43:56 -0500 |
|---|---|---|
| committer | git <svn-admin@ruby-lang.org> | 2024-02-01 16:48:55 +0000 |
| commit | 494778c66340be109f4d3bc4e51e57da967e7027 (patch) | |
| tree | 8d5b2103982f3e29fb6a3bdfa510c93c57b35606 /prism | |
| parent | 67c5690a6d29e861fcb8522dc4213f9d26d3aab6 (diff) | |
[ruby/prism] Remove locals_body_index
We're not using this anymore, and it doesn't make a lot of sense
outside the context of a compiler anyway, and in anyway it's wrong
when you have local variables written in default values.
https://github.com/ruby/prism/commit/5edbd9c25b
Diffstat (limited to 'prism')
| -rw-r--r-- | prism/config.yml | 6 | ||||
| -rw-r--r-- | prism/prism.c | 28 |
2 files changed, 3 insertions, 31 deletions
diff --git a/prism/config.yml b/prism/config.yml index 2a4c2cd951..d5451f295e 100644 --- a/prism/config.yml +++ b/prism/config.yml @@ -690,8 +690,6 @@ nodes: fields: - name: locals type: constant[] - - name: locals_body_index - type: uint32 - name: parameters type: node? - name: body @@ -1260,8 +1258,6 @@ nodes: type: node? - name: locals type: constant[] - - name: locals_body_index - type: uint32 - name: def_keyword_loc type: location - name: operator_loc @@ -1985,8 +1981,6 @@ nodes: fields: - name: locals type: constant[] - - name: locals_body_index - type: uint32 - name: operator_loc type: location - name: opening_loc diff --git a/prism/prism.c b/prism/prism.c index 2f54e9ee93..9cc983ba34 100644 --- a/prism/prism.c +++ b/prism/prism.c @@ -1521,7 +1521,7 @@ pm_block_argument_node_create(pm_parser_t *parser, const pm_token_t *operator, p * Allocate and initialize a new BlockNode node. */ static pm_block_node_t * -pm_block_node_create(pm_parser_t *parser, pm_constant_id_list_t *locals, uint32_t locals_body_index, const pm_token_t *opening, pm_node_t *parameters, pm_node_t *body, const pm_token_t *closing) { +pm_block_node_create(pm_parser_t *parser, pm_constant_id_list_t *locals, const pm_token_t *opening, pm_node_t *parameters, pm_node_t *body, const pm_token_t *closing) { pm_block_node_t *node = PM_ALLOC_NODE(parser, pm_block_node_t); *node = (pm_block_node_t) { @@ -1530,7 +1530,6 @@ pm_block_node_create(pm_parser_t *parser, pm_constant_id_list_t *locals, uint32_ .location = { .start = opening->start, .end = closing->end }, }, .locals = *locals, - .locals_body_index = locals_body_index, .parameters = parameters, .body = body, .opening_loc = PM_LOCATION_TOKEN_VALUE(opening), @@ -2793,7 +2792,6 @@ pm_def_node_create( pm_parameters_node_t *parameters, pm_node_t *body, pm_constant_id_list_t *locals, - uint32_t locals_body_index, const pm_token_t *def_keyword, const pm_token_t *operator, const pm_token_t *lparen, @@ -2825,7 +2823,6 @@ pm_def_node_create( .parameters = parameters, .body = body, .locals = *locals, - .locals_body_index = locals_body_index, .def_keyword_loc = PM_LOCATION_TOKEN_VALUE(def_keyword), .operator_loc = PM_OPTIONAL_LOCATION_TOKEN_VALUE(operator), .lparen_loc = PM_OPTIONAL_LOCATION_TOKEN_VALUE(lparen), @@ -4135,7 +4132,6 @@ static pm_lambda_node_t * pm_lambda_node_create( pm_parser_t *parser, pm_constant_id_list_t *locals, - uint32_t locals_body_index, const pm_token_t *operator, const pm_token_t *opening, const pm_token_t *closing, @@ -4153,7 +4149,6 @@ pm_lambda_node_create( }, }, .locals = *locals, - .locals_body_index = locals_body_index, .operator_loc = PM_LOCATION_TOKEN_VALUE(operator), .opening_loc = PM_LOCATION_TOKEN_VALUE(opening), .closing_loc = PM_LOCATION_TOKEN_VALUE(closing), @@ -12422,12 +12417,6 @@ parse_block(pm_parser_t *parser) { pm_block_parameters_node_closing_set(block_parameters, &parser->previous); } - uint32_t locals_body_index = 0; - - if (block_parameters) { - locals_body_index = (uint32_t) parser->current_scope->locals.size; - } - accept1(parser, PM_TOKEN_NEWLINE); pm_node_t *statements = NULL; @@ -12459,7 +12448,6 @@ parse_block(pm_parser_t *parser) { if (parameters == NULL && (maximum > 0)) { parameters = (pm_node_t *) pm_numbered_parameters_node_create(parser, &(pm_location_t) { .start = opening.start, .end = parser->previous.end }, maximum); - locals_body_index = maximum; } pm_constant_id_list_t locals = parser->current_scope->locals; @@ -12467,7 +12455,7 @@ parse_block(pm_parser_t *parser) { pm_accepts_block_stack_pop(parser); pm_parser_current_param_name_restore(parser, saved_param_name); - return pm_block_node_create(parser, &locals, locals_body_index, &opening, parameters, statements, &parser->previous); + return pm_block_node_create(parser, &locals, &opening, parameters, statements, &parser->previous); } /** @@ -15521,8 +15509,6 @@ parse_expression_prefix(pm_parser_t *parser, pm_binding_power_t binding_power, b } } - uint32_t locals_body_index = (uint32_t) parser->current_scope->locals.size; - context_pop(parser); pm_node_t *statements = NULL; pm_token_t equal; @@ -15601,7 +15587,6 @@ parse_expression_prefix(pm_parser_t *parser, pm_binding_power_t binding_power, b params, statements, &locals, - locals_body_index, &def_keyword, &operator, &lparen, @@ -16544,12 +16529,6 @@ parse_expression_prefix(pm_parser_t *parser, pm_binding_power_t binding_power, b } } - uint32_t locals_body_index = 0; - - if (block_parameters) { - locals_body_index = (uint32_t) parser->current_scope->locals.size; - } - pm_token_t opening; pm_node_t *body = NULL; parser->lambda_enclosure_nesting = previous_lambda_enclosure_nesting; @@ -16584,7 +16563,6 @@ parse_expression_prefix(pm_parser_t *parser, pm_binding_power_t binding_power, b if (parameters == NULL && (maximum > 0)) { parameters = (pm_node_t *) pm_numbered_parameters_node_create(parser, &(pm_location_t) { .start = operator.start, .end = parser->previous.end }, maximum); - locals_body_index = maximum; } pm_constant_id_list_t locals = parser->current_scope->locals; @@ -16593,7 +16571,7 @@ parse_expression_prefix(pm_parser_t *parser, pm_binding_power_t binding_power, b pm_accepts_block_stack_pop(parser); pm_parser_current_param_name_restore(parser, saved_param_name); - return (pm_node_t *) pm_lambda_node_create(parser, &locals, locals_body_index, &operator, &opening, &parser->previous, parameters, body); + return (pm_node_t *) pm_lambda_node_create(parser, &locals, &operator, &opening, &parser->previous, parameters, body); } case PM_TOKEN_UPLUS: { parser_lex(parser); |
