Always configure and restore api version settings in tests
This commit is contained in:
committed by
Nikolay Krasko
parent
6c83e9fb85
commit
f995192f21
+20
-8
@@ -32,11 +32,8 @@ import com.intellij.testFramework.LightProjectDescriptor
|
|||||||
import com.intellij.testFramework.LoggedErrorProcessor
|
import com.intellij.testFramework.LoggedErrorProcessor
|
||||||
import org.apache.log4j.Logger
|
import org.apache.log4j.Logger
|
||||||
import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments
|
import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments
|
||||||
import org.jetbrains.kotlin.config.CompilerSettings
|
import org.jetbrains.kotlin.config.*
|
||||||
import org.jetbrains.kotlin.config.CompilerSettings.Companion.DEFAULT_ADDITIONAL_ARGUMENTS
|
import org.jetbrains.kotlin.config.CompilerSettings.Companion.DEFAULT_ADDITIONAL_ARGUMENTS
|
||||||
import org.jetbrains.kotlin.config.JvmTarget
|
|
||||||
import org.jetbrains.kotlin.config.LanguageFeature
|
|
||||||
import org.jetbrains.kotlin.config.LanguageVersion
|
|
||||||
import org.jetbrains.kotlin.idea.KotlinFileType
|
import org.jetbrains.kotlin.idea.KotlinFileType
|
||||||
import org.jetbrains.kotlin.idea.compiler.configuration.KotlinCommonCompilerArgumentsHolder
|
import org.jetbrains.kotlin.idea.compiler.configuration.KotlinCommonCompilerArgumentsHolder
|
||||||
import org.jetbrains.kotlin.idea.compiler.configuration.KotlinCompilerSettings
|
import org.jetbrains.kotlin.idea.compiler.configuration.KotlinCompilerSettings
|
||||||
@@ -254,7 +251,11 @@ private fun configureCompilerOptions(fileText: String, project: Project, module:
|
|||||||
val options = InTextDirectivesUtils.findListWithPrefixes(fileText, "// $COMPILER_ARGUMENTS_DIRECTIVE ").firstOrNull()
|
val options = InTextDirectivesUtils.findListWithPrefixes(fileText, "// $COMPILER_ARGUMENTS_DIRECTIVE ").firstOrNull()
|
||||||
|
|
||||||
if (version != null || jvmTarget != null || options != null) {
|
if (version != null || jvmTarget != null || options != null) {
|
||||||
configureLanguageAndApiVersion(project, module, version ?: LanguageVersion.LATEST_STABLE.versionString)
|
configureLanguageAndApiVersion(
|
||||||
|
project, module,
|
||||||
|
version ?: LanguageVersion.LATEST_STABLE.versionString,
|
||||||
|
null
|
||||||
|
)
|
||||||
|
|
||||||
val facetSettings = KotlinFacet.get(module)!!.configuration.settings
|
val facetSettings = KotlinFacet.get(module)!!.configuration.settings
|
||||||
|
|
||||||
@@ -304,7 +305,7 @@ private fun rollbackCompilerOptions(project: Project, module: Module, removeFace
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
configureLanguageAndApiVersion(project, module, LanguageVersion.LATEST_STABLE.versionString)
|
configureLanguageAndApiVersion(project, module, LanguageVersion.LATEST_STABLE.versionString, ApiVersion.LATEST_STABLE.versionString)
|
||||||
|
|
||||||
val facetSettings = KotlinFacet.get(module)!!.configuration.settings
|
val facetSettings = KotlinFacet.get(module)!!.configuration.settings
|
||||||
(facetSettings.compilerArguments as? K2JVMCompilerArguments)?.jvmTarget = JvmTarget.DEFAULT.description
|
(facetSettings.compilerArguments as? K2JVMCompilerArguments)?.jvmTarget = JvmTarget.DEFAULT.description
|
||||||
@@ -333,7 +334,12 @@ fun withCustomLanguageAndApiVersion(
|
|||||||
.update { this.languageVersion = LanguageVersion.LATEST_STABLE.versionString }
|
.update { this.languageVersion = LanguageVersion.LATEST_STABLE.versionString }
|
||||||
module.removeKotlinFacet(IdeModifiableModelsProviderImpl(project), commitModel = true)
|
module.removeKotlinFacet(IdeModifiableModelsProviderImpl(project), commitModel = true)
|
||||||
} else {
|
} else {
|
||||||
configureLanguageAndApiVersion(project, module, LanguageVersion.LATEST_STABLE.versionString, null)
|
configureLanguageAndApiVersion(
|
||||||
|
project,
|
||||||
|
module,
|
||||||
|
LanguageVersion.LATEST_STABLE.versionString,
|
||||||
|
ApiVersion.LATEST_STABLE.versionString
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -342,11 +348,17 @@ private fun configureLanguageAndApiVersion(
|
|||||||
project: Project,
|
project: Project,
|
||||||
module: Module,
|
module: Module,
|
||||||
languageVersion: String,
|
languageVersion: String,
|
||||||
apiVersion: String? = null
|
apiVersion: String?
|
||||||
) {
|
) {
|
||||||
WriteAction.run<Throwable> {
|
WriteAction.run<Throwable> {
|
||||||
val modelsProvider = IdeModifiableModelsProviderImpl(project)
|
val modelsProvider = IdeModifiableModelsProviderImpl(project)
|
||||||
val facet = module.getOrCreateFacet(modelsProvider, useProjectSettings = false)
|
val facet = module.getOrCreateFacet(modelsProvider, useProjectSettings = false)
|
||||||
|
|
||||||
|
val compilerArguments = facet.configuration.settings.compilerArguments
|
||||||
|
if (compilerArguments != null) {
|
||||||
|
compilerArguments.apiVersion = null
|
||||||
|
}
|
||||||
|
|
||||||
facet.configureFacet(languageVersion, LanguageFeature.State.DISABLED, null, modelsProvider)
|
facet.configureFacet(languageVersion, LanguageFeature.State.DISABLED, null, modelsProvider)
|
||||||
if (apiVersion != null) {
|
if (apiVersion != null) {
|
||||||
facet.configuration.settings.apiLevel = LanguageVersion.fromVersionString(apiVersion)
|
facet.configuration.settings.apiLevel = LanguageVersion.fromVersionString(apiVersion)
|
||||||
|
|||||||
Reference in New Issue
Block a user