diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/jvmArguments.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/jvmArguments.kt index 609b21a19bc..a22c21e33a2 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/jvmArguments.kt +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/jvmArguments.kt @@ -202,11 +202,13 @@ fun CompilerConfiguration.configureAdvancedJvmOptions(arguments: K2JVMCompilerAr put(JVMConfigurationKeys.PARAMETERS_METADATA, arguments.javaParameters) + // TODO: ignore previous configuration value when we do not need old backend in scripting by default + val useOldBackend = arguments.useOldBackend || get(JVMConfigurationKeys.IR) == false val useIR = arguments.useFir || if (languageVersionSettings.supportsFeature(LanguageFeature.JvmIrEnabledByDefault)) { - !arguments.useOldBackend + !useOldBackend } else { - arguments.useIR && !arguments.useOldBackend + arguments.useIR && !useOldBackend } if (arguments.useIR && arguments.useOldBackend) { diff --git a/plugins/scripting/scripting-compiler/tests/org/jetbrains/kotlin/scripting/compiler/plugin/ScriptingCompilerPluginTest.kt b/plugins/scripting/scripting-compiler/tests/org/jetbrains/kotlin/scripting/compiler/plugin/ScriptingCompilerPluginTest.kt index 791779a8c12..e8b1912e575 100644 --- a/plugins/scripting/scripting-compiler/tests/org/jetbrains/kotlin/scripting/compiler/plugin/ScriptingCompilerPluginTest.kt +++ b/plugins/scripting/scripting-compiler/tests/org/jetbrains/kotlin/scripting/compiler/plugin/ScriptingCompilerPluginTest.kt @@ -25,6 +25,7 @@ import org.jetbrains.kotlin.compiler.plugin.ComponentRegistrar import org.jetbrains.kotlin.config.CompilerConfiguration import org.jetbrains.kotlin.config.JVMConfigurationKeys import org.jetbrains.kotlin.scripting.compiler.plugin.impl.reporter +import org.jetbrains.kotlin.scripting.compiler.plugin.impl.updateWithCompilerOptions import org.jetbrains.kotlin.scripting.configuration.ScriptingConfigurationKeys import org.jetbrains.kotlin.scripting.definitions.SCRIPT_DEFINITION_MARKERS_PATH import org.jetbrains.kotlin.scripting.definitions.discoverScriptTemplatesInClasspath @@ -76,6 +77,14 @@ class ScriptingCompilerPluginTest : TestCase() { return KotlinCoreEnvironment.createForTests(disposable, configuration, EnvironmentConfigFiles.JVM_CONFIG_FILES) } + fun testUseOldBackendPreservedOnOptionsUpdate() { + val configuration = KotlinTestUtils.newConfiguration(ConfigurationKind.NO_KOTLIN_REFLECT, TestJdkKind.FULL_JDK).apply { + put(JVMConfigurationKeys.IR, false) + updateWithCompilerOptions(emptyList()) + } + Assert.assertEquals(configuration[JVMConfigurationKeys.IR], false) + } + fun testScriptResolverEnvironmentArgsParsing() { val longStr = (1..100).joinToString("\\,") { """\" $it aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \\""" }