mirror of
https://github.com/ruby/ruby.git
synced 2025-08-15 13:39:04 +02:00
[PRISM] Fix fsl coming from file
This commit is contained in:
parent
d77172b79b
commit
ccec209b2c
2 changed files with 13 additions and 3 deletions
9
iseq.c
9
iseq.c
|
@ -1002,8 +1002,15 @@ pm_iseq_new_with_opt(pm_scope_node_t *node, VALUE name, VALUE path, VALUE realpa
|
|||
.end_pos = { .lineno = (int) end.line, .column = (int) end.column }
|
||||
};
|
||||
|
||||
rb_compile_option_t *current_option = (rb_compile_option_t *) option;
|
||||
if (node->parser->frozen_string_literal) {
|
||||
rb_compile_option_t new_option = *option;
|
||||
new_option.frozen_string_literal = true;
|
||||
current_option = &new_option;
|
||||
}
|
||||
|
||||
prepare_iseq_build(iseq, name, path, realpath, first_lineno, &code_location, -1,
|
||||
parent, isolated_depth, type, Qnil, option);
|
||||
parent, isolated_depth, type, Qnil, current_option);
|
||||
|
||||
pm_iseq_compile_node(iseq, node);
|
||||
finish_iseq_build(iseq);
|
||||
|
|
|
@ -773,12 +773,13 @@ pm_interpolated_node_compile(pm_node_list_t *parts, rb_iseq_t *iseq, NODE dummy_
|
|||
current_string = rb_enc_str_new(NULL, 0, enc);
|
||||
}
|
||||
|
||||
if (parser->frozen_string_literal) {
|
||||
if (ISEQ_COMPILE_DATA(iseq)->option->frozen_string_literal) {
|
||||
ADD_INSN1(ret, &dummy_line_node, putobject, rb_str_freeze(current_string));
|
||||
}
|
||||
else {
|
||||
ADD_INSN1(ret, &dummy_line_node, putstring, rb_str_freeze(current_string));
|
||||
}
|
||||
|
||||
current_string = Qnil;
|
||||
number_of_items_pushed++;
|
||||
|
||||
|
@ -793,12 +794,14 @@ pm_interpolated_node_compile(pm_node_list_t *parts, rb_iseq_t *iseq, NODE dummy_
|
|||
|
||||
if (RTEST(current_string)) {
|
||||
current_string = rb_fstring(current_string);
|
||||
if (parser->frozen_string_literal) {
|
||||
|
||||
if (ISEQ_COMPILE_DATA(iseq)->option->frozen_string_literal) {
|
||||
ADD_INSN1(ret, &dummy_line_node, putobject, current_string);
|
||||
}
|
||||
else {
|
||||
ADD_INSN1(ret, &dummy_line_node, putstring, current_string);
|
||||
}
|
||||
|
||||
current_string = Qnil;
|
||||
number_of_items_pushed++;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue