From e59a7304779c6a51a89ff39695743a470f086c4e Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Mon, 8 Jan 2024 21:53:33 +0900 Subject: [PATCH] `st_index_t` is not `VALUE` --- parse.y | 5 +++-- 1 file 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));