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)
|
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 directives = KotlinTestUtils.parseDirectives(originalFileText)
|
||||||
val languageVersionSettings = parseLanguageVersionSettings(directives)
|
val languageVersionSettings = parseLanguageVersionSettings(directives) ?:
|
||||||
if (languageVersionSettings != null) {
|
CompilerTestLanguageVersionSettings(emptyMap(), ApiVersion.LATEST_STABLE, LanguageVersion.LATEST_STABLE)
|
||||||
environment.configuration.languageVersionSettings = languageVersionSettings
|
environment.configuration.languageVersionSettings = languageVersionSettings
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private val languagePattern = Pattern.compile("(\\+|\\-|warn:)(\\w+)\\s*")
|
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.openapi.util.io.FileUtil
|
||||||
import com.intellij.psi.PsiElement
|
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.cli.jvm.compiler.KotlinCoreEnvironment
|
||||||
import org.jetbrains.kotlin.descriptors.CallableDescriptor
|
import org.jetbrains.kotlin.descriptors.CallableDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
||||||
@@ -52,7 +52,7 @@ abstract class AbstractResolvedCallsTest : KotlinTestWithEnvironment() {
|
|||||||
val originalText = KotlinTestUtils.doLoadFile(File(filePath))!!
|
val originalText = KotlinTestUtils.doLoadFile(File(filePath))!!
|
||||||
val (text, carets) = extractCarets(originalText)
|
val (text, carets) = extractCarets(originalText)
|
||||||
|
|
||||||
setupLanguageVersionSettings(originalText, environment)
|
setupLanguageVersionSettingsForCompilerTests(originalText, environment)
|
||||||
|
|
||||||
val ktFile = KtPsiFactory(project).createFile(text)
|
val ktFile = KtPsiFactory(project).createFile(text)
|
||||||
val bindingContext = JvmResolveUtil.analyze(ktFile, environment).bindingContext
|
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 {
|
private void doTestWithEnvironment(String fileName, KotlinCoreEnvironment environment) throws Exception {
|
||||||
File file = new File(fileName);
|
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);
|
KtFile ktFile = KotlinTestUtils.loadJetFile(environment.getProject(), file);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user