summaryrefslogtreecommitdiff
path: root/prism
diff options
context:
space:
mode:
authorKevin Newton <kddnewton@gmail.com>2024-02-01 11:43:56 -0500
committergit <svn-admin@ruby-lang.org>2024-02-01 16:48:55 +0000
commit494778c66340be109f4d3bc4e51e57da967e7027 (patch)
tree8d5b2103982f3e29fb6a3bdfa510c93c57b35606 /prism
parent67c5690a6d29e861fcb8522dc4213f9d26d3aab6 (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.yml6
-rw-r--r--prism/prism.c28
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);