diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/CompilerTestLanguageVersionSettings.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/CompilerTestLanguageVersionSettings.kt index 4c876a67c90..82c220f3648 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/CompilerTestLanguageVersionSettings.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/CompilerTestLanguageVersionSettings.kt @@ -46,11 +46,10 @@ private fun specificFeaturesForTests(): Map): LanguageVersionSettings = - parseLanguageVersionSettings(directiveMap) - ?: CompilerTestLanguageVersionSettings(emptyMap(), ApiVersion.LATEST_STABLE, LanguageVersion.LATEST_STABLE) +fun parseLanguageVersionSettingsOrDefault(directiveMap: Map): CompilerTestLanguageVersionSettings = + parseLanguageVersionSettings(directiveMap) ?: defaultLanguageVersionSettings() -fun parseLanguageVersionSettings(directiveMap: Map): LanguageVersionSettings? { +fun parseLanguageVersionSettings(directiveMap: Map): CompilerTestLanguageVersionSettings? { val apiVersionString = directiveMap[API_VERSION_DIRECTIVE] val languageFeaturesString = directiveMap[LANGUAGE_DIRECTIVE] val experimental = directiveMap[EXPERIMENTAL_DIRECTIVE]?.split(' ')?.let { AnalysisFlag.experimental to it } @@ -78,6 +77,9 @@ fun parseLanguageVersionSettings(directiveMap: Map): LanguageVer ) } +fun defaultLanguageVersionSettings(): CompilerTestLanguageVersionSettings = + CompilerTestLanguageVersionSettings(emptyMap(), ApiVersion.LATEST_STABLE, LanguageVersion.LATEST_STABLE) + fun setupLanguageVersionSettingsForCompilerTests(originalFileText: String, environment: KotlinCoreEnvironment) { val directives = KotlinTestUtils.parseDirectives(originalFileText) val languageVersionSettings = parseLanguageVersionSettingsOrDefault(directives) diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/jvm/compiler/AbstractLoadJavaTest.java b/compiler/tests-common/tests/org/jetbrains/kotlin/jvm/compiler/AbstractLoadJavaTest.java index 7972715504a..d99b68bdf8d 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/jvm/compiler/AbstractLoadJavaTest.java +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/jvm/compiler/AbstractLoadJavaTest.java @@ -10,6 +10,7 @@ import com.intellij.openapi.util.io.FileUtil; import junit.framework.ComparisonFailure; import org.jetbrains.annotations.NotNull; import org.jetbrains.kotlin.analyzer.AnalysisResult; +import org.jetbrains.kotlin.checkers.CompilerTestLanguageVersionSettings; import org.jetbrains.kotlin.checkers.CompilerTestLanguageVersionSettingsKt; import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles; import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment; @@ -39,6 +40,7 @@ import java.util.List; import java.util.Map; import java.util.regex.Pattern; +import static java.util.Collections.emptyMap; import static org.jetbrains.kotlin.jvm.compiler.LoadDescriptorUtil.*; import static org.jetbrains.kotlin.test.KotlinTestUtils.*; import static org.jetbrains.kotlin.test.util.DescriptorValidator.ValidationVisitor.errorTypesAllowed; @@ -146,7 +148,17 @@ public abstract class AbstractLoadJavaTest extends TestCaseWithTmpdir { private static void updateConfigurationWithDirectives(String content, CompilerConfiguration configuration) { Map directives = KotlinTestUtils.parseDirectives(content); - LanguageVersionSettings languageVersionSettings = CompilerTestLanguageVersionSettingsKt.parseLanguageVersionSettingsOrDefault(directives); + LanguageVersionSettings languageVersionSettings = CompilerTestLanguageVersionSettingsKt.parseLanguageVersionSettings(directives); + if (languageVersionSettings == null) { + if (InTextDirectivesUtils.isDirectiveDefined(content, "WITH_UNSIGNED")) { + languageVersionSettings = new CompilerTestLanguageVersionSettings( + emptyMap(), ApiVersion.KOTLIN_1_3, LanguageVersion.KOTLIN_1_3, emptyMap() + ); + } + else { + languageVersionSettings = CompilerTestLanguageVersionSettingsKt.defaultLanguageVersionSettings(); + } + } CommonConfigurationKeysKt.setLanguageVersionSettings(configuration, languageVersionSettings);