Add ability to use unsigned types in LoadJava tests
This is a temporary solution, which will be completely removed in 1.3, see KT-25226
This commit is contained in:
+6
-4
@@ -46,11 +46,10 @@ private fun specificFeaturesForTests(): Map<LanguageFeature, LanguageFeature.Sta
|
||||
emptyMap()
|
||||
}
|
||||
|
||||
fun parseLanguageVersionSettingsOrDefault(directiveMap: Map<String, String>): LanguageVersionSettings =
|
||||
parseLanguageVersionSettings(directiveMap)
|
||||
?: CompilerTestLanguageVersionSettings(emptyMap(), ApiVersion.LATEST_STABLE, LanguageVersion.LATEST_STABLE)
|
||||
fun parseLanguageVersionSettingsOrDefault(directiveMap: Map<String, String>): CompilerTestLanguageVersionSettings =
|
||||
parseLanguageVersionSettings(directiveMap) ?: defaultLanguageVersionSettings()
|
||||
|
||||
fun parseLanguageVersionSettings(directiveMap: Map<String, String>): LanguageVersionSettings? {
|
||||
fun parseLanguageVersionSettings(directiveMap: Map<String, String>): 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<String, String>): 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)
|
||||
|
||||
+13
-1
@@ -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<String, String> 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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user