diff options
| author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2026-04-08 14:11:18 +0900 |
|---|---|---|
| committer | Nobuyoshi Nakada <nobu.nakada@gmail.com> | 2026-04-08 14:50:30 +0900 |
| commit | 24a2ba09af13b7c969733ea9370ad59d2442f4c9 (patch) | |
| tree | 00eefd894bd8e919884c930580086993aed4d94a /parse.y | |
| parent | 0cebedd05c2e87330ac8312d0218a800d132c4bf (diff) | |
[Bug #21985] Include the `-` in the negative numbers location
Diffstat (limited to 'parse.y')
| -rw-r--r-- | parse.y | 7 |
1 files changed, 4 insertions, 3 deletions
@@ -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; } |
