Parse testing directives in AbstractLoadJavaTest
This commit is contained in:
+5
-2
@@ -46,6 +46,10 @@ private fun specificFeaturesForTests(): Map<LanguageFeature, LanguageFeature.Sta
|
|||||||
emptyMap()
|
emptyMap()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun parseLanguageVersionSettingsOrDefault(directiveMap: Map<String, String>): LanguageVersionSettings =
|
||||||
|
parseLanguageVersionSettings(directiveMap)
|
||||||
|
?: CompilerTestLanguageVersionSettings(emptyMap(), ApiVersion.LATEST_STABLE, LanguageVersion.LATEST_STABLE)
|
||||||
|
|
||||||
fun parseLanguageVersionSettings(directiveMap: Map<String, String>): LanguageVersionSettings? {
|
fun parseLanguageVersionSettings(directiveMap: Map<String, String>): LanguageVersionSettings? {
|
||||||
val apiVersionString = directiveMap[API_VERSION_DIRECTIVE]
|
val apiVersionString = directiveMap[API_VERSION_DIRECTIVE]
|
||||||
val languageFeaturesString = directiveMap[LANGUAGE_DIRECTIVE]
|
val languageFeaturesString = directiveMap[LANGUAGE_DIRECTIVE]
|
||||||
@@ -76,8 +80,7 @@ fun parseLanguageVersionSettings(directiveMap: Map<String, String>): LanguageVer
|
|||||||
|
|
||||||
fun setupLanguageVersionSettingsForCompilerTests(originalFileText: String, environment: KotlinCoreEnvironment) {
|
fun setupLanguageVersionSettingsForCompilerTests(originalFileText: String, environment: KotlinCoreEnvironment) {
|
||||||
val directives = KotlinTestUtils.parseDirectives(originalFileText)
|
val directives = KotlinTestUtils.parseDirectives(originalFileText)
|
||||||
val languageVersionSettings = parseLanguageVersionSettings(directives) ?:
|
val languageVersionSettings = parseLanguageVersionSettingsOrDefault(directives)
|
||||||
CompilerTestLanguageVersionSettings(emptyMap(), ApiVersion.LATEST_STABLE, LanguageVersion.LATEST_STABLE)
|
|
||||||
environment.configuration.languageVersionSettings = languageVersionSettings
|
environment.configuration.languageVersionSettings = languageVersionSettings
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+5
-8
@@ -10,6 +10,7 @@ import com.intellij.openapi.util.io.FileUtil;
|
|||||||
import junit.framework.ComparisonFailure;
|
import junit.framework.ComparisonFailure;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.kotlin.analyzer.AnalysisResult;
|
import org.jetbrains.kotlin.analyzer.AnalysisResult;
|
||||||
|
import org.jetbrains.kotlin.checkers.CompilerTestLanguageVersionSettingsKt;
|
||||||
import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles;
|
import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles;
|
||||||
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment;
|
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment;
|
||||||
import org.jetbrains.kotlin.cli.jvm.compiler.NoScopeRecordCliBindingTrace;
|
import org.jetbrains.kotlin.cli.jvm.compiler.NoScopeRecordCliBindingTrace;
|
||||||
@@ -144,14 +145,10 @@ public abstract class AbstractLoadJavaTest extends TestCaseWithTmpdir {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static void updateConfigurationWithDirectives(String content, CompilerConfiguration configuration) {
|
private static void updateConfigurationWithDirectives(String content, CompilerConfiguration configuration) {
|
||||||
String version = InTextDirectivesUtils.findStringWithPrefixes(content, "// LANGUAGE_VERSION:");
|
Map<String, String> directives = KotlinTestUtils.parseDirectives(content);
|
||||||
if (version != null) {
|
LanguageVersionSettings languageVersionSettings = CompilerTestLanguageVersionSettingsKt.parseLanguageVersionSettingsOrDefault(directives);
|
||||||
LanguageVersion explicitVersion = LanguageVersion.fromVersionString(version);
|
|
||||||
CommonConfigurationKeysKt.setLanguageVersionSettings(
|
CommonConfigurationKeysKt.setLanguageVersionSettings(configuration, languageVersionSettings);
|
||||||
configuration,
|
|
||||||
new LanguageVersionSettingsImpl(explicitVersion, ApiVersion.createByLanguageVersion(explicitVersion))
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (InTextDirectivesUtils.isDirectiveDefined(content, "ANDROID_ANNOTATIONS")) {
|
if (InTextDirectivesUtils.isDirectiveDefined(content, "ANDROID_ANNOTATIONS")) {
|
||||||
JvmContentRootsKt.addJvmClasspathRoot(configuration, ForTestCompileRuntime.androidAnnotationsForTests());
|
JvmContentRootsKt.addJvmClasspathRoot(configuration, ForTestCompileRuntime.androidAnnotationsForTests());
|
||||||
|
|||||||
Reference in New Issue
Block a user