[ruby/prism] Unary not name location

https://github.com/ruby/prism/commit/78190d2999
This commit is contained in:
Kevin Newton 2024-01-26 15:13:46 -05:00 committed by git
parent 739eec0456
commit 78deba1aa1
2 changed files with 9 additions and 6 deletions

View File

@ -2890,7 +2890,8 @@ pm_def_node_receiver_check(pm_parser_t *parser, const pm_node_t *node) {
static pm_def_node_t * static pm_def_node_t *
pm_def_node_create( pm_def_node_create(
pm_parser_t *parser, pm_parser_t *parser,
const pm_token_t *name, pm_constant_id_t name,
const pm_location_t *name_loc,
pm_node_t *receiver, pm_node_t *receiver,
pm_parameters_node_t *parameters, pm_parameters_node_t *parameters,
pm_node_t *body, pm_node_t *body,
@ -2920,8 +2921,8 @@ pm_def_node_create(
.type = PM_DEF_NODE, .type = PM_DEF_NODE,
.location = { .start = def_keyword->start, .end = end }, .location = { .start = def_keyword->start, .end = end },
}, },
.name = pm_parser_constant_id_token(parser, name), .name = name,
.name_loc = PM_LOCATION_TOKEN_VALUE(name), .name_loc = *name_loc,
.receiver = receiver, .receiver = receiver,
.parameters = parameters, .parameters = parameters,
.body = body, .body = body,
@ -15626,11 +15627,13 @@ parse_expression_prefix(pm_parser_t *parser, pm_binding_power_t binding_power, b
* methods to override the unary operators, we should ignore * methods to override the unary operators, we should ignore
* the @ in the same way we do for symbols. * the @ in the same way we do for symbols.
*/ */
name.end = parse_operator_symbol_name(&name); pm_constant_id_t name_id = pm_parser_constant_id_token(parser, &name);
pm_location_t name_loc = { .start = name.start, .end = parse_operator_symbol_name(&name) };
return (pm_node_t *) pm_def_node_create( return (pm_node_t *) pm_def_node_create(
parser, parser,
&name, name_id,
&name_loc,
receiver, receiver,
params, params,
statements, statements,

View File

@ -4,7 +4,7 @@
@ StatementsNode (location: (1,0)-(1,17)) @ StatementsNode (location: (1,0)-(1,17))
└── body: (length: 1) └── body: (length: 1)
└── @ DefNode (location: (1,0)-(1,17)) └── @ DefNode (location: (1,0)-(1,17))
├── name: :! ├── name: :"!@"
├── name_loc: (1,4)-(1,5) = "!" ├── name_loc: (1,4)-(1,5) = "!"
├── receiver: ∅ ├── receiver: ∅
├── parameters: ∅ ├── parameters: ∅