Set up specific LV settings for compiler tests
For example, to configure NI (cherry picked from commit e0c6aec)
This commit is contained in:
+4
-5
@@ -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*")
|
||||
|
||||
+2
-2
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user