From fbbe3968813e6aceb7b81edada710b5022288023 Mon Sep 17 00:00:00 2001 From: Mikhail Zarechenskiy Date: Tue, 7 Nov 2017 14:54:58 +0300 Subject: [PATCH] Add configuration key to enable new inference for compiler tests --- .../cli/src/org/jetbrains/kotlin/cli/common/CLICompiler.java | 2 +- .../cli/src/org/jetbrains/kotlin/cli/jvm/K2JVMCompiler.kt | 2 ++ .../org/jetbrains/kotlin/config/CommonConfigurationKeys.kt | 5 ++++- .../tests/org/jetbrains/kotlin/test/KotlinTestUtils.java | 1 + 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/common/CLICompiler.java b/compiler/cli/src/org/jetbrains/kotlin/cli/common/CLICompiler.java index e5e98df6af1..d19703e49e3 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/common/CLICompiler.java +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/common/CLICompiler.java @@ -204,7 +204,7 @@ public abstract class CLICompiler extends CLI extraLanguageFeatures.put(LanguageFeature.Coroutines, coroutinesState); } - if (arguments.getNewInference()) { + if (arguments.getNewInference() || configuration.getBoolean(CommonConfigurationKeys.USE_NEW_INFERENCE)) { extraLanguageFeatures.put(LanguageFeature.NewInference, LanguageFeature.State.ENABLED); } diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/K2JVMCompiler.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/K2JVMCompiler.kt index fa09cb3ac2b..64665f7ded4 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/K2JVMCompiler.kt +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/K2JVMCompiler.kt @@ -355,6 +355,8 @@ class K2JVMCompiler : CLICompiler() { } private fun putAdvancedOptions(configuration: CompilerConfiguration, arguments: K2JVMCompilerArguments) { + configuration.put(CommonConfigurationKeys.USE_NEW_INFERENCE, arguments.newInference) + configuration.put(JVMConfigurationKeys.DISABLE_CALL_ASSERTIONS, arguments.noCallAssertions) configuration.put(JVMConfigurationKeys.DISABLE_RECEIVER_ASSERTIONS, arguments.noReceiverAssertions) configuration.put(JVMConfigurationKeys.DISABLE_PARAM_ASSERTIONS, arguments.noParamAssertions) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/config/CommonConfigurationKeys.kt b/compiler/frontend/src/org/jetbrains/kotlin/config/CommonConfigurationKeys.kt index 3c8461ee98b..e840f9d1be9 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/config/CommonConfigurationKeys.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/config/CommonConfigurationKeys.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2015 JetBrains s.r.o. + * Copyright 2010-2017 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -33,6 +33,9 @@ object CommonConfigurationKeys { @JvmField val LOOKUP_TRACKER = CompilerConfigurationKey.create("lookup tracker") + + @JvmField + val USE_NEW_INFERENCE = CompilerConfigurationKey.create("use new inference") } var CompilerConfiguration.languageVersionSettings: LanguageVersionSettings diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/test/KotlinTestUtils.java b/compiler/tests-common/tests/org/jetbrains/kotlin/test/KotlinTestUtils.java index 38cf5895ba2..f10ea03e0af 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/test/KotlinTestUtils.java +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/test/KotlinTestUtils.java @@ -471,6 +471,7 @@ public class KotlinTestUtils { public static CompilerConfiguration newConfiguration() { CompilerConfiguration configuration = new CompilerConfiguration(); configuration.put(CommonConfigurationKeys.MODULE_NAME, TEST_MODULE_NAME); + configuration.put(CommonConfigurationKeys.USE_NEW_INFERENCE, "true".equals(System.getProperty("kotlin.ni"))); configuration.put(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY, new MessageCollector() { @Override