[IDE] Drop coroutines KotlinFacetSettings.coroutineSupport

This commit is contained in:
Dmitriy Novozhilov
2020-12-02 13:03:19 +03:00
committed by TeamCityServer
parent 69e1d60b08
commit a8b65bc673
9 changed files with 2 additions and 95 deletions
@@ -136,18 +136,7 @@ fun Project.getLanguageVersionSettings(
compilerSettings.additionalArgumentsAsList
)
val extraLanguageFeatures = additionalArguments.configureLanguageFeatures(MessageCollector.NONE).apply {
configureCoroutinesSupport(
CoroutineSupport.byCompilerArguments(KotlinCommonCompilerArgumentsHolder.getInstance(this@getLanguageVersionSettings).settings),
languageVersion
)
if (isReleaseCoroutines != null) {
put(
LanguageFeature.ReleaseCoroutines,
if (isReleaseCoroutines) LanguageFeature.State.ENABLED else LanguageFeature.State.DISABLED
)
}
}
val extraLanguageFeatures = additionalArguments.configureLanguageFeatures(MessageCollector.NONE)
val extraAnalysisFlags = additionalArguments.configureAnalysisFlags(MessageCollector.NONE).apply {
if (javaTypeEnhancementState != null) put(JvmAnalysisFlags.javaTypeEnhancementState, javaTypeEnhancementState)
@@ -228,7 +217,6 @@ private fun Module.computeLanguageVersionSettings(): LanguageVersionSettings {
}
val languageFeatures = facetSettings?.mergedCompilerArguments?.configureLanguageFeatures(MessageCollector.NONE)?.apply {
configureCoroutinesSupport(facetSettings.coroutineSupport, languageVersion)
configureMultiplatformSupport(facetSettings.targetPlatform?.idePlatformKind, this@computeLanguageVersionSettings)
}.orEmpty()
@@ -281,18 +269,6 @@ private fun parseArguments(
return platformKind.createArguments { parseCommandLineArguments(additionalArguments, this) }
}
fun MutableMap<LanguageFeature, LanguageFeature.State>.configureCoroutinesSupport(
coroutineSupport: LanguageFeature.State?,
languageVersion: LanguageVersion
) {
val state = if (languageVersion >= LanguageVersion.KOTLIN_1_3) {
LanguageFeature.State.ENABLED
} else {
coroutineSupport ?: LanguageFeature.Coroutines.defaultState
}
put(LanguageFeature.Coroutines, state)
}
fun MutableMap<LanguageFeature, LanguageFeature.State>.configureMultiplatformSupport(
platformKind: IdePlatformKind<*>?,
module: Module?
@@ -185,26 +185,6 @@ class GradleFacetImportTest : GradleImportingTestCase() {
)
}
@Test
fun testCoroutineImportByOptions() {
configureByFiles()
importProject()
with(facetSettings) {
Assert.assertEquals(LanguageFeature.State.ENABLED, coroutineSupport)
}
}
@Test
fun testCoroutineImportByProperties() {
configureByFiles()
importProject()
with(facetSettings) {
Assert.assertEquals(LanguageFeature.State.ENABLED, coroutineSupport)
}
}
@Test
fun testJsImport() {
configureByFiles()
@@ -275,21 +275,6 @@ class KotlinFacetSettings {
return targetPlatform?.toIdePlatform()
}
var coroutineSupport: LanguageFeature.State?
get() {
val languageVersion = languageLevel ?: return LanguageFeature.Coroutines.defaultState
if (languageVersion < LanguageFeature.Coroutines.sinceVersion!!) return LanguageFeature.State.DISABLED
return CoroutineSupport.byCompilerArgumentsOrNull(compilerArguments)
}
set(value) {
compilerArguments?.coroutinesState = when (value) {
null -> CommonCompilerArguments.DEFAULT
LanguageFeature.State.ENABLED -> CommonCompilerArguments.ENABLE
LanguageFeature.State.ENABLED_WITH_WARNING -> CommonCompilerArguments.WARN
LanguageFeature.State.ENABLED_WITH_ERROR, LanguageFeature.State.DISABLED -> CommonCompilerArguments.ERROR
}
}
var implementedModuleNames: List<String> = emptyList() // used for first implementation of MPP, aka 'old' MPP
var dependsOnModuleNames: List<String> = emptyList() // used for New MPP and later implementations
@@ -357,7 +357,6 @@ abstract class KotlinWithLibraryConfigurator protected constructor() : KotlinPro
val facetSettings = KotlinFacetSettingsProvider.getInstance(module.project)?.getInitializedSettings(module)
if (facetSettings != null) {
ModuleRootModificationUtil.updateModel(module) {
facetSettings.coroutineSupport = state
facetSettings.apiLevel = LanguageVersion.KOTLIN_1_1
facetSettings.languageLevel = LanguageVersion.KOTLIN_1_1
}
@@ -625,7 +625,6 @@ class KotlinMavenImporterTest : MavenImportingTestCase() {
Assert.assertFalse(compilerArguments!!.autoAdvanceLanguageVersion)
Assert.assertFalse(compilerArguments!!.autoAdvanceApiVersion)
Assert.assertEquals(true, compilerArguments!!.suppressWarnings)
Assert.assertEquals(LanguageFeature.State.ENABLED, coroutineSupport)
Assert.assertEquals("JVM 1.8", targetPlatform!!.oldFashionedDescription)
Assert.assertEquals("1.8", (compilerArguments as K2JVMCompilerArguments).jvmTarget)
Assert.assertEquals("foobar.jar", (compilerArguments as K2JVMCompilerArguments).classpath)
@@ -821,7 +820,6 @@ class KotlinMavenImporterTest : MavenImportingTestCase() {
Assert.assertFalse(compilerArguments!!.autoAdvanceLanguageVersion)
Assert.assertFalse(compilerArguments!!.autoAdvanceApiVersion)
Assert.assertEquals(true, compilerArguments!!.suppressWarnings)
Assert.assertEquals(LanguageFeature.State.ENABLED, coroutineSupport)
Assert.assertTrue(targetPlatform.isJs())
with(compilerArguments as K2JSCompilerArguments) {
Assert.assertEquals(true, sourceMap)
@@ -976,7 +974,6 @@ class KotlinMavenImporterTest : MavenImportingTestCase() {
Assert.assertEquals("1.0", apiLevel!!.versionString)
Assert.assertEquals("1.0", compilerArguments!!.apiVersion)
Assert.assertEquals(true, compilerArguments!!.suppressWarnings)
Assert.assertEquals(LanguageFeature.State.ENABLED, coroutineSupport)
Assert.assertEquals("JVM 1.8", targetPlatform!!.oldFashionedDescription)
Assert.assertEquals("1.8", (compilerArguments as K2JVMCompilerArguments).jvmTarget)
Assert.assertEquals("foobar.jar", (compilerArguments as K2JVMCompilerArguments).classpath)
@@ -1039,7 +1036,6 @@ class KotlinMavenImporterTest : MavenImportingTestCase() {
with(facetSettings) {
Assert.assertEquals("JVM 1.8", targetPlatform!!.oldFashionedDescription)
Assert.assertEquals("1.8", (compilerArguments as K2JVMCompilerArguments).jvmTarget)
Assert.assertEquals(LanguageFeature.State.ENABLED, coroutineSupport)
Assert.assertEquals("c:/program files/jdk1.8", (compilerArguments as K2JVMCompilerArguments).classpath)
}
}
@@ -1095,7 +1091,6 @@ class KotlinMavenImporterTest : MavenImportingTestCase() {
with(facetSettings) {
Assert.assertEquals("JVM 1.8", targetPlatform!!.oldFashionedDescription)
Assert.assertEquals("1.8", (compilerArguments as K2JVMCompilerArguments).jvmTarget)
Assert.assertEquals(LanguageFeature.State.ENABLED, coroutineSupport)
Assert.assertEquals("c:/program files/jdk1.8", (compilerArguments as K2JVMCompilerArguments).classpath)
}
}
@@ -3047,4 +3042,4 @@ class KotlinMavenImporterTest : MavenImportingTestCase() {
private val facetSettings: KotlinFacetSettings
get() = facetSettings("project")
}
}
@@ -187,7 +187,6 @@ fun KotlinFacet.configureFacet(
if (languageLevel != null && apiLevel != null && apiLevel > languageLevel) {
this.apiLevel = languageLevel
}
this.coroutineSupport = if (languageLevel != null && languageLevel < LanguageVersion.KOTLIN_1_3) coroutineSupport else null
this.pureKotlinSourceFolders = pureKotlinSourceFolders
}
@@ -273,13 +273,11 @@ open class MultiModuleHighlightingTest : AbstractMultiModuleHighlightingTest() {
)
val moduleNew = module("moduleNew").setupKotlinFacet {
settings.coroutineSupport = LanguageFeature.State.ENABLED
settings.languageLevel = LanguageVersion.KOTLIN_1_3
settings.apiLevel = LanguageVersion.KOTLIN_1_3
}
val moduleOld = module("moduleOld").setupKotlinFacet {
settings.coroutineSupport = LanguageFeature.State.ENABLED
settings.languageLevel = LanguageVersion.KOTLIN_1_2
settings.apiLevel = LanguageVersion.KOTLIN_1_2
}
@@ -79,30 +79,6 @@ class UpdateConfigurationQuickFixTest : KotlinLightPlatformCodeInsightFixtureTes
assertEquals(LanguageFeature.State.ENABLED_WITH_ERROR, coroutineSupport)
}
fun testEnableCoroutinesFacet() {
configureRuntime("mockRuntime11")
val facet = configureKotlinFacet(module) {
settings.languageLevel = LanguageVersion.KOTLIN_1_1
}
resetProjectSettings(LanguageVersion.KOTLIN_1_1)
myFixture.configureByText("foo.kt", "suspend fun foo()")
assertEquals(LanguageFeature.State.ENABLED_WITH_WARNING, facet.configuration.settings.coroutineSupport)
myFixture.launchAction(myFixture.findSingleIntention("Enable coroutine support in the current module"))
assertEquals(LanguageFeature.State.ENABLED, facet.configuration.settings.coroutineSupport)
}
fun testEnableCoroutines_UpdateRuntime() {
configureRuntime("mockRuntime106")
resetProjectSettings(LanguageVersion.KOTLIN_1_1)
myFixture.configureByText("foo.kt", "suspend fun foo()")
assertEquals(LanguageFeature.State.ENABLED_WITH_WARNING, coroutineSupport)
myFixture.launchAction(myFixture.findSingleIntention("Enable coroutine support in the project"))
assertEquals(LanguageFeature.State.ENABLED, coroutineSupport)
assertEquals(bundledRuntimeVersion(), getRuntimeLibraryVersion(myFixture.module))
}
fun testIncreaseLangLevel() {
configureRuntime("mockRuntime11")
resetProjectSettings(LanguageVersion.KOTLIN_1_0)
@@ -135,7 +135,6 @@ abstract class AbstractMultiModuleTest : DaemonAnalyzerTestCase() {
?: error("Facet settings are not found")
facetSettings.useProjectSettings = false
facetSettings.coroutineSupport = LanguageFeature.State.ENABLED
}
protected fun checkFiles(