Parse testing directives in AbstractLoadJavaTest
This commit is contained in:
+5
-2
@@ -46,6 +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 parseLanguageVersionSettings(directiveMap: Map<String, String>): LanguageVersionSettings? {
|
||||
val apiVersionString = directiveMap[API_VERSION_DIRECTIVE]
|
||||
val languageFeaturesString = directiveMap[LANGUAGE_DIRECTIVE]
|
||||
@@ -76,8 +80,7 @@ fun parseLanguageVersionSettings(directiveMap: Map<String, String>): LanguageVer
|
||||
|
||||
fun setupLanguageVersionSettingsForCompilerTests(originalFileText: String, environment: KotlinCoreEnvironment) {
|
||||
val directives = KotlinTestUtils.parseDirectives(originalFileText)
|
||||
val languageVersionSettings = parseLanguageVersionSettings(directives) ?:
|
||||
CompilerTestLanguageVersionSettings(emptyMap(), ApiVersion.LATEST_STABLE, LanguageVersion.LATEST_STABLE)
|
||||
val languageVersionSettings = parseLanguageVersionSettingsOrDefault(directives)
|
||||
environment.configuration.languageVersionSettings = languageVersionSettings
|
||||
}
|
||||
|
||||
|
||||
+5
-8
@@ -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.CompilerTestLanguageVersionSettingsKt;
|
||||
import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles;
|
||||
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment;
|
||||
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) {
|
||||
String version = InTextDirectivesUtils.findStringWithPrefixes(content, "// LANGUAGE_VERSION:");
|
||||
if (version != null) {
|
||||
LanguageVersion explicitVersion = LanguageVersion.fromVersionString(version);
|
||||
CommonConfigurationKeysKt.setLanguageVersionSettings(
|
||||
configuration,
|
||||
new LanguageVersionSettingsImpl(explicitVersion, ApiVersion.createByLanguageVersion(explicitVersion))
|
||||
);
|
||||
}
|
||||
Map<String, String> directives = KotlinTestUtils.parseDirectives(content);
|
||||
LanguageVersionSettings languageVersionSettings = CompilerTestLanguageVersionSettingsKt.parseLanguageVersionSettingsOrDefault(directives);
|
||||
|
||||
CommonConfigurationKeysKt.setLanguageVersionSettings(configuration, languageVersionSettings);
|
||||
|
||||
if (InTextDirectivesUtils.isDirectiveDefined(content, "ANDROID_ANNOTATIONS")) {
|
||||
JvmContentRootsKt.addJvmClasspathRoot(configuration, ForTestCompileRuntime.androidAnnotationsForTests());
|
||||
|
||||
Reference in New Issue
Block a user