From b4f3f3c1031cc9ef5c6741042236db497be6602b Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Fri, 15 Mar 2024 09:47:49 -0400 Subject: [PATCH] [PRISM] Fix up source file when not frozen --- prism_compile.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/prism_compile.c b/prism_compile.c index 56b11b40b08962..8417d09bd180a2 100644 --- a/prism_compile.c +++ b/prism_compile.c @@ -7919,8 +7919,16 @@ pm_compile_node(rb_iseq_t *iseq, const pm_node_t *node, LINK_ANCHOR *const ret, // __FILE__ // ^^^^^^^^ if (!popped) { - VALUE value = pm_static_literal_value(node, scope_node); - PUSH_INSN1(ret, location, putstring, value); + const pm_source_file_node_t *cast = (const pm_source_file_node_t *) node; + VALUE string = parse_string(scope_node, &cast->filepath); + + if (PM_NODE_FLAG_P(cast, PM_STRING_FLAGS_FROZEN)) { + string = rb_fstring(string); + PUSH_INSN1(ret, location, putobject, string); + } + else { + PUSH_INSN1(ret, location, putstring, string); + } } return; }