Kotlin Facet: Ignore modules unprocessed by kotlin project resolver
This happens in AS on project opening, but we can't (re-)configure facet in such case since relevant module data are not available #KT-18725 Fixed
This commit is contained in:
+3
@@ -35,6 +35,8 @@ import org.jetbrains.plugins.gradle.model.data.GradleSourceSetData
|
|||||||
import org.jetbrains.plugins.gradle.service.project.AbstractProjectResolverExtension
|
import org.jetbrains.plugins.gradle.service.project.AbstractProjectResolverExtension
|
||||||
import org.jetbrains.plugins.gradle.service.project.GradleProjectResolverUtil.getModuleId
|
import org.jetbrains.plugins.gradle.service.project.GradleProjectResolverUtil.getModuleId
|
||||||
|
|
||||||
|
var DataNode<ModuleData>.isResolved
|
||||||
|
by NotNullableUserDataProperty(Key.create<Boolean>("IS_RESOLVED"), false)
|
||||||
var DataNode<ModuleData>.hasKotlinPlugin
|
var DataNode<ModuleData>.hasKotlinPlugin
|
||||||
by NotNullableUserDataProperty(Key.create<Boolean>("HAS_KOTLIN_PLUGIN"), false)
|
by NotNullableUserDataProperty(Key.create<Boolean>("HAS_KOTLIN_PLUGIN"), false)
|
||||||
var DataNode<ModuleData>.compilerArgumentsBySourceSet
|
var DataNode<ModuleData>.compilerArgumentsBySourceSet
|
||||||
@@ -68,6 +70,7 @@ class KotlinGradleProjectResolverExtension : AbstractProjectResolverExtension()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ideModule.isResolved = true
|
||||||
ideModule.hasKotlinPlugin = gradleModel.hasKotlinPlugin
|
ideModule.hasKotlinPlugin = gradleModel.hasKotlinPlugin
|
||||||
ideModule.compilerArgumentsBySourceSet = gradleModel.compilerArgumentsBySourceSet
|
ideModule.compilerArgumentsBySourceSet = gradleModel.compilerArgumentsBySourceSet
|
||||||
ideModule.coroutines = gradleModel.coroutines
|
ideModule.coroutines = gradleModel.coroutines
|
||||||
|
|||||||
@@ -112,6 +112,8 @@ private fun configureFacetByGradleModule(
|
|||||||
ideModule: Module,
|
ideModule: Module,
|
||||||
modelsProvider: IdeModifiableModelsProvider
|
modelsProvider: IdeModifiableModelsProvider
|
||||||
): KotlinFacet? {
|
): KotlinFacet? {
|
||||||
|
if (!moduleNode.isResolved) return null
|
||||||
|
|
||||||
if (!moduleNode.hasKotlinPlugin) {
|
if (!moduleNode.hasKotlinPlugin) {
|
||||||
val facetModel = modelsProvider.getModifiableFacetModel(ideModule)
|
val facetModel = modelsProvider.getModifiableFacetModel(ideModule)
|
||||||
val facet = facetModel.getFacetByType(KotlinFacetType.TYPE_ID)
|
val facet = facetModel.getFacetByType(KotlinFacetType.TYPE_ID)
|
||||||
|
|||||||
Reference in New Issue
Block a user