Load compiler language version settings for codegen tests

This commit is contained in:
Mikhail Zarechenskiy
2017-11-08 11:21:26 +03:00
parent 85d442133d
commit 20bf238006
2 changed files with 11 additions and 2 deletions
@@ -42,7 +42,7 @@ data class CompilerTestLanguageVersionSettings(
override fun <T> getFlag(flag: AnalysisFlag<T>): T = analysisFlags[flag] as T? ?: flag.defaultValue
}
private fun specificFeaturesForTests(): Map<LanguageFeature, LanguageFeature.State> {
fun specificFeaturesForTests(): Map<LanguageFeature, LanguageFeature.State> {
return if (System.getProperty("kotlin.ni") == "true")
mapOf(LanguageFeature.NewInference to LanguageFeature.State.ENABLED)
else
@@ -32,6 +32,8 @@ import org.jetbrains.annotations.Nullable;
import org.jetbrains.kotlin.backend.common.output.OutputFile;
import org.jetbrains.kotlin.backend.common.output.SimpleOutputFileCollection;
import org.jetbrains.kotlin.checkers.CheckerTestUtil;
import org.jetbrains.kotlin.checkers.CompilerTestLanguageVersionSettings;
import org.jetbrains.kotlin.checkers.CompilerTestLanguageVersionSettingsKt;
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys;
import org.jetbrains.kotlin.cli.common.output.outputUtils.OutputUtilsKt;
import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles;
@@ -195,9 +197,16 @@ public abstract class CodegenTestCase extends KtUsefulTestCase {
CommonConfigurationKeysKt.setLanguageVersionSettings(configuration, explicitLanguageVersionSettings);
}
else if (explicitLanguageVersion != null) {
CompilerTestLanguageVersionSettings compilerLanguageVersionSettings = new CompilerTestLanguageVersionSettings(
Collections.emptyMap(),
ApiVersion.createByLanguageVersion(explicitLanguageVersion),
explicitLanguageVersion,
CompilerTestLanguageVersionSettingsKt.specificFeaturesForTests(),
Collections.emptyMap()
);
CommonConfigurationKeysKt.setLanguageVersionSettings(
configuration,
new LanguageVersionSettingsImpl(explicitLanguageVersion, ApiVersion.createByLanguageVersion(explicitLanguageVersion))
compilerLanguageVersionSettings
);
}