Set up specific LV settings for compiler tests

For example, to configure NI

(cherry picked from commit e0c6aec)
This commit is contained in:
Mikhail Zarechenskiy
2017-11-09 10:23:10 +03:00
parent 91a6591b70
commit cd2d32d92a
3 changed files with 7 additions and 8 deletions
@@ -64,12 +64,11 @@ fun parseLanguageVersionSettings(directiveMap: Map<String, String>): LanguageVer
return CompilerTestLanguageVersionSettings(languageFeatures, apiVersion, LanguageVersion.LATEST_STABLE)
}
fun setupLanguageVersionSettings(originalFileText: String, environment: KotlinCoreEnvironment) {
fun setupLanguageVersionSettingsForCompilerTests(originalFileText: String, environment: KotlinCoreEnvironment) {
val directives = KotlinTestUtils.parseDirectives(originalFileText)
val languageVersionSettings = parseLanguageVersionSettings(directives)
if (languageVersionSettings != null) {
environment.configuration.languageVersionSettings = languageVersionSettings
}
val languageVersionSettings = parseLanguageVersionSettings(directives) ?:
CompilerTestLanguageVersionSettings(emptyMap(), ApiVersion.LATEST_STABLE, LanguageVersion.LATEST_STABLE)
environment.configuration.languageVersionSettings = languageVersionSettings
}
private val languagePattern = Pattern.compile("(\\+|\\-|warn:)(\\w+)\\s*")
@@ -18,7 +18,7 @@ package org.jetbrains.kotlin.resolve.calls
import com.intellij.openapi.util.io.FileUtil
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.checkers.setupLanguageVersionSettings
import org.jetbrains.kotlin.checkers.setupLanguageVersionSettingsForCompilerTests
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
import org.jetbrains.kotlin.descriptors.CallableDescriptor
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
@@ -52,7 +52,7 @@ abstract class AbstractResolvedCallsTest : KotlinTestWithEnvironment() {
val originalText = KotlinTestUtils.doLoadFile(File(filePath))!!
val (text, carets) = extractCarets(originalText)
setupLanguageVersionSettings(originalText, environment)
setupLanguageVersionSettingsForCompilerTests(originalText, environment)
val ktFile = KtPsiFactory(project).createFile(text)
val bindingContext = JvmResolveUtil.analyze(ktFile, environment).bindingContext
@@ -58,7 +58,7 @@ public abstract class AbstractPseudocodeTest extends KotlinTestWithEnvironmentMa
private void doTestWithEnvironment(String fileName, KotlinCoreEnvironment environment) throws Exception {
File file = new File(fileName);
CompilerTestLanguageVersionSettingsKt.setupLanguageVersionSettings(FileUtil.loadFile(file, true), environment);
CompilerTestLanguageVersionSettingsKt.setupLanguageVersionSettingsForCompilerTests(FileUtil.loadFile(file, true), environment);
KtFile ktFile = KotlinTestUtils.loadJetFile(environment.getProject(), file);