Skip to content

Commit e09db4d

Browse files
committed
--frozen-string-literals must be a language option
1 parent b18260f commit e09db4d

File tree

4 files changed

+10
-8
lines changed

4 files changed

+10
-8
lines changed

src/main/java/org/truffleruby/options/LanguageOptions.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
// @formatter:off
2222
public class LanguageOptions {
2323

24+
/** --frozen-string-literals=false */
25+
public final boolean FROZEN_STRING_LITERALS;
2426
/** --lazy-default=true */
2527
public final boolean DEFAULT_LAZY;
2628
/** --lazy-translation-user=DEFAULT_LAZY */
@@ -49,6 +51,7 @@ public class LanguageOptions {
4951
public final boolean SHARED_OBJECTS_FORCE;
5052

5153
public LanguageOptions(Env env, OptionValues options) {
54+
FROZEN_STRING_LITERALS = options.get(OptionsCatalog.FROZEN_STRING_LITERALS_KEY);
5255
DEFAULT_LAZY = options.get(OptionsCatalog.DEFAULT_LAZY_KEY);
5356
LAZY_TRANSLATION_USER = options.hasBeenSet(OptionsCatalog.LAZY_TRANSLATION_USER_KEY) ? options.get(OptionsCatalog.LAZY_TRANSLATION_USER_KEY) : DEFAULT_LAZY;
5457
BACKTRACES_OMIT_UNUSED = options.get(OptionsCatalog.BACKTRACES_OMIT_UNUSED_KEY);
@@ -66,6 +69,8 @@ public LanguageOptions(Env env, OptionValues options) {
6669

6770
public Object fromDescriptor(OptionDescriptor descriptor) {
6871
switch (descriptor.getName()) {
72+
case "ruby.frozen-string-literals":
73+
return FROZEN_STRING_LITERALS;
6974
case "ruby.lazy-default":
7075
return DEFAULT_LAZY;
7176
case "ruby.lazy-translation-user":
@@ -98,7 +103,8 @@ public Object fromDescriptor(OptionDescriptor descriptor) {
98103
}
99104

100105
public static boolean areOptionsCompatible(OptionValues one, OptionValues two) {
101-
return one.get(OptionsCatalog.DEFAULT_LAZY_KEY).equals(two.get(OptionsCatalog.DEFAULT_LAZY_KEY)) &&
106+
return one.get(OptionsCatalog.FROZEN_STRING_LITERALS_KEY).equals(two.get(OptionsCatalog.FROZEN_STRING_LITERALS_KEY)) &&
107+
one.get(OptionsCatalog.DEFAULT_LAZY_KEY).equals(two.get(OptionsCatalog.DEFAULT_LAZY_KEY)) &&
102108
one.get(OptionsCatalog.LAZY_TRANSLATION_USER_KEY).equals(two.get(OptionsCatalog.LAZY_TRANSLATION_USER_KEY)) &&
103109
one.get(OptionsCatalog.BACKTRACES_OMIT_UNUSED_KEY).equals(two.get(OptionsCatalog.BACKTRACES_OMIT_UNUSED_KEY)) &&
104110
one.get(OptionsCatalog.LAZY_TRANSLATION_LOG_KEY).equals(two.get(OptionsCatalog.LAZY_TRANSLATION_LOG_KEY)) &&

src/main/java/org/truffleruby/options/Options.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,6 @@ public class Options {
4545
public final String LAUNCHER;
4646
/** --core-load-path="resource:/truffleruby" */
4747
public final String CORE_LOAD_PATH;
48-
/** --frozen-string-literals=false */
49-
public final boolean FROZEN_STRING_LITERALS;
5048
/** --rubygems=true */
5149
public final boolean RUBYGEMS;
5250
/** --lazy-rubygems=RUBYGEMS && DEFAULT_LAZY */
@@ -264,7 +262,6 @@ public Options(Env env, OptionValues options, LanguageOptions languageOptions) {
264262
NO_HOME_PROVIDED = options.get(OptionsCatalog.NO_HOME_PROVIDED_KEY);
265263
LAUNCHER = options.get(OptionsCatalog.LAUNCHER_KEY);
266264
CORE_LOAD_PATH = options.get(OptionsCatalog.CORE_LOAD_PATH_KEY);
267-
FROZEN_STRING_LITERALS = options.get(OptionsCatalog.FROZEN_STRING_LITERALS_KEY);
268265
RUBYGEMS = options.get(OptionsCatalog.RUBYGEMS_KEY);
269266
LAZY_RUBYGEMS = RUBYGEMS && (options.hasBeenSet(OptionsCatalog.LAZY_RUBYGEMS_KEY) ? options.get(OptionsCatalog.LAZY_RUBYGEMS_KEY) : languageOptions.DEFAULT_LAZY);
270267
PATCHING = options.get(OptionsCatalog.PATCHING_KEY);
@@ -393,8 +390,6 @@ public Object fromDescriptor(OptionDescriptor descriptor) {
393390
return LAUNCHER;
394391
case "ruby.core-load-path":
395392
return CORE_LOAD_PATH;
396-
case "ruby.frozen-string-literals":
397-
return FROZEN_STRING_LITERALS;
398393
case "ruby.rubygems":
399394
return RUBYGEMS;
400395
case "ruby.lazy-rubygems":

src/main/java/org/truffleruby/parser/TranslatorDriver.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ public RubyRootNode parse(RubySource rubySource, ParserContext parserContext, St
133133

134134
parentEnvironment = environmentForFrame(context, parentFrame);
135135
} else {
136-
parentEnvironment = environmentForFrame(context, null);
136+
parentEnvironment = null;
137137
}
138138

139139
if (argumentNames != null) {
@@ -151,7 +151,7 @@ public RubyRootNode parse(RubySource rubySource, ParserContext parserContext, St
151151
!isEvalParse,
152152
false);
153153

154-
if (context.getOptions().FROZEN_STRING_LITERALS) {
154+
if (language.options.FROZEN_STRING_LITERALS) {
155155
parserConfiguration.setFrozenStringLiteral(true);
156156
}
157157

src/options.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
LANGUAGE_OPTIONS:
2+
- FROZEN_STRING_LITERALS
23
- BACKTRACES_OMIT_UNUSED
34
- LAZY_TRANSLATION_USER
45
- HASH_PACKED_ARRAY_MAX

0 commit comments

Comments
 (0)