summaryrefslogtreecommitdiff
path: root/parse.y
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2026-04-08 14:11:18 +0900
committerNobuyoshi Nakada <nobu.nakada@gmail.com>2026-04-08 14:50:30 +0900
commit24a2ba09af13b7c969733ea9370ad59d2442f4c9 (patch)
tree00eefd894bd8e919884c930580086993aed4d94a /parse.y
parent0cebedd05c2e87330ac8312d0218a800d132c4bf (diff)
[Bug #21985] Include the `-` in the negative numbers location
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y7
1 files changed, 4 insertions, 3 deletions
diff --git a/parse.y b/parse.y
index 4f5c93c600..2c8be06373 100644
--- a/parse.y
+++ b/parse.y
@@ -1442,7 +1442,7 @@ static NODE *new_hash_pattern_tail(struct parser_params *p, NODE *kw_args, ID kw
static rb_node_kw_arg_t *new_kw_arg(struct parser_params *p, NODE *k, const YYLTYPE *loc);
static rb_node_args_t *args_with_numbered(struct parser_params*,rb_node_args_t*,int,ID);
-static NODE* negate_lit(struct parser_params*, NODE*);
+static NODE* negate_lit(struct parser_params*, NODE*,const YYLTYPE*);
static void no_blockarg(struct parser_params*,NODE*);
static NODE *ret_args(struct parser_params*,NODE*);
static NODE *arg_blk_pass(NODE*,rb_node_block_pass_t*);
@@ -6133,7 +6133,7 @@ numeric : simple_numeric
| tUMINUS_NUM simple_numeric %prec tLOWEST
{
$$ = $2;
- negate_lit(p, $$);
+ negate_lit(p, $$, &@$);
/*% ripper: unary!(ID2VAL(idUMinus), $:2) %*/
}
;
@@ -14358,7 +14358,7 @@ ret_args(struct parser_params *p, NODE *node)
}
static NODE*
-negate_lit(struct parser_params *p, NODE* node)
+negate_lit(struct parser_params *p, NODE* node, const YYLTYPE *loc)
{
switch (nd_type(node)) {
case NODE_INTEGER:
@@ -14374,6 +14374,7 @@ negate_lit(struct parser_params *p, NODE* node)
RNODE_IMAGINARY(node)->minus = TRUE;
break;
}
+ node->nd_loc = *loc;
return node;
}