summaryrefslogtreecommitdiff
path: root/parse.y
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2024-01-08 21:53:33 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2024-01-10 14:06:33 +0900
commite59a7304779c6a51a89ff39695743a470f086c4e (patch)
tree58a2b736c39cf186985354d7932edfbb3f8927a1 /parse.y
parent48fd311721a3d6c56584bebafb48fa6c8e69eb5f (diff)
`st_index_t` is not `VALUE`
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y5
1 files changed, 3 insertions, 2 deletions
diff --git a/parse.y b/parse.y
index 8a1bda1b0c..a3a4346f5b 100644
--- a/parse.y
+++ b/parse.y
@@ -213,7 +213,8 @@ node_cdhash_hash(VALUE a)
switch (type) {
case NODE_INTEGER:
val = rb_node_integer_literal_val(node);
- return (FIXNUM_P(val) ? val : FIX2LONG(rb_big_hash(val)));
+ if (!FIXNUM_P(val)) val = rb_big_hash(val);
+ return FIX2LONG(val);
case NODE_FLOAT:
val = rb_node_float_literal_val(node);
return rb_dbl_long_hash(RFLOAT_VALUE(val));
@@ -227,7 +228,7 @@ node_cdhash_hash(VALUE a)
return rb_node_sym_string_val(node);
case NODE_LINE:
/* Same with NODE_INTEGER FIXNUM case */
- return INT2FIX(node->nd_loc.beg_pos.lineno);
+ return (st_index_t)node->nd_loc.beg_pos.lineno;
case NODE_FILE:
/* Same with String in rb_iseq_cdhash_hash */
return rb_str_hash(rb_node_file_path_val(node));