Always clean language and api versions after usage
This commit is contained in:
committed by
Nikolay Krasko
parent
c0dac9bf32
commit
af3b057ba2
+17
-2
@@ -247,7 +247,7 @@ fun <T> withCustomCompilerOptions(fileText: String, project: Project, module: Mo
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun configureCompilerOptions(fileText: String, project: Project, module: Module): Boolean {
|
private fun configureCompilerOptions(fileText: String, project: Project, module: Module): Boolean {
|
||||||
val version = InTextDirectivesUtils.findStringWithPrefixes(fileText, "// $LANGUAGE_VERSION_DIRECTIVE ")
|
val version = InTextDirectivesUtils.findStringWithPrefixes(fileText, "// $LANGUAGE_VERSION_DIRECTIVE ")
|
||||||
val jvmTarget = InTextDirectivesUtils.findStringWithPrefixes(fileText, "// $JVM_TARGET_DIRECTIVE ")
|
val jvmTarget = InTextDirectivesUtils.findStringWithPrefixes(fileText, "// $JVM_TARGET_DIRECTIVE ")
|
||||||
// We can have several such directives in quickFixMultiFile tests
|
// We can have several such directives in quickFixMultiFile tests
|
||||||
@@ -310,7 +310,22 @@ private fun rollbackCompilerOptions(project: Project, module: Module) {
|
|||||||
KotlinCompilerSettings.getInstance(project).update { this.additionalArguments = DEFAULT_ADDITIONAL_ARGUMENTS }
|
KotlinCompilerSettings.getInstance(project).update { this.additionalArguments = DEFAULT_ADDITIONAL_ARGUMENTS }
|
||||||
}
|
}
|
||||||
|
|
||||||
fun configureLanguageAndApiVersion(
|
fun withCustomLanguageAndApiVersion(
|
||||||
|
project: Project,
|
||||||
|
module: Module,
|
||||||
|
languageVersion: String,
|
||||||
|
apiVersion: String?,
|
||||||
|
body: () -> Unit
|
||||||
|
) {
|
||||||
|
configureLanguageAndApiVersion(project, module, languageVersion, apiVersion)
|
||||||
|
try {
|
||||||
|
body()
|
||||||
|
} finally {
|
||||||
|
configureLanguageAndApiVersion(project, module, LanguageVersion.LATEST_STABLE.versionString, null)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun configureLanguageAndApiVersion(
|
||||||
project: Project,
|
project: Project,
|
||||||
module: Module,
|
module: Module,
|
||||||
languageVersion: String,
|
languageVersion: String,
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
package org.jetbrains.kotlin.idea.codeInsight
|
package org.jetbrains.kotlin.idea.codeInsight
|
||||||
|
|
||||||
import org.jetbrains.kotlin.idea.test.PluginTestCaseBase
|
import org.jetbrains.kotlin.idea.test.PluginTestCaseBase
|
||||||
import org.jetbrains.kotlin.idea.test.configureLanguageAndApiVersion
|
import org.jetbrains.kotlin.idea.test.withCustomLanguageAndApiVersion
|
||||||
import org.jetbrains.kotlin.test.JUnit3WithIdeaConfigurationRunner
|
import org.jetbrains.kotlin.test.JUnit3WithIdeaConfigurationRunner
|
||||||
import org.junit.runner.RunWith
|
import org.junit.runner.RunWith
|
||||||
|
|
||||||
@@ -282,9 +282,10 @@ class OverrideImplementTest : AbstractOverrideImplementTest() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun testCopyExperimental() {
|
fun testCopyExperimental() {
|
||||||
configureLanguageAndApiVersion(project, module, "1.3", "1.3")
|
withCustomLanguageAndApiVersion(project, module, "1.3", "1.3") {
|
||||||
doOverrideFileTest("targetFun")
|
doOverrideFileTest("targetFun")
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fun testUnresolvedType() {
|
fun testUnresolvedType() {
|
||||||
doOverrideFileTest()
|
doOverrideFileTest()
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ import org.jetbrains.kotlin.idea.stubindex.KotlinFullClassNameIndex
|
|||||||
import org.jetbrains.kotlin.idea.stubindex.KotlinTopLevelFunctionFqnNameIndex
|
import org.jetbrains.kotlin.idea.stubindex.KotlinTopLevelFunctionFqnNameIndex
|
||||||
import org.jetbrains.kotlin.idea.test.ConfigLibraryUtil
|
import org.jetbrains.kotlin.idea.test.ConfigLibraryUtil
|
||||||
import org.jetbrains.kotlin.idea.test.PluginTestCaseBase.*
|
import org.jetbrains.kotlin.idea.test.PluginTestCaseBase.*
|
||||||
import org.jetbrains.kotlin.idea.test.configureLanguageAndApiVersion
|
import org.jetbrains.kotlin.idea.test.withCustomLanguageAndApiVersion
|
||||||
import org.jetbrains.kotlin.idea.util.application.runWriteAction
|
import org.jetbrains.kotlin.idea.util.application.runWriteAction
|
||||||
import org.jetbrains.kotlin.psi.*
|
import org.jetbrains.kotlin.psi.*
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.allChildren
|
import org.jetbrains.kotlin.psi.psiUtil.allChildren
|
||||||
@@ -43,9 +43,10 @@ private const val RUN_PREFIX = "// RUN:"
|
|||||||
class RunConfigurationTest : AbstractRunConfigurationTest() {
|
class RunConfigurationTest : AbstractRunConfigurationTest() {
|
||||||
fun testMainInTest() {
|
fun testMainInTest() {
|
||||||
val createModuleResult = configureModule(moduleDirPath("module"), getTestProject().baseDir!!)
|
val createModuleResult = configureModule(moduleDirPath("module"), getTestProject().baseDir!!)
|
||||||
configureLanguageAndApiVersion(
|
withCustomLanguageAndApiVersion(
|
||||||
createModuleResult.module.project, createModuleResult.module, LanguageVersionSettingsImpl.DEFAULT.languageVersion.versionString,
|
createModuleResult.module.project, createModuleResult.module,
|
||||||
)
|
LanguageVersionSettingsImpl.DEFAULT.languageVersion.versionString, apiVersion = null
|
||||||
|
) {
|
||||||
ConfigLibraryUtil.configureKotlinRuntimeAndSdk(createModuleResult.module, addJdk(testRootDisposable, ::mockJdk))
|
ConfigLibraryUtil.configureKotlinRuntimeAndSdk(createModuleResult.module, addJdk(testRootDisposable, ::mockJdk))
|
||||||
|
|
||||||
val runConfiguration = createConfigurationFromMain(getTestProject(), "some.main")
|
val runConfiguration = createConfigurationFromMain(getTestProject(), "some.main")
|
||||||
@@ -67,6 +68,7 @@ class RunConfigurationTest : AbstractRunConfigurationTest() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fun testDependencyModuleClasspath() {
|
fun testDependencyModuleClasspath() {
|
||||||
val dependencyModuleSrcDir = configureModule(moduleDirPath("module"), getTestProject().baseDir!!).srcOutputDir
|
val dependencyModuleSrcDir = configureModule(moduleDirPath("module"), getTestProject().baseDir!!).srcOutputDir
|
||||||
|
|||||||
Reference in New Issue
Block a user