From d69caea7255eb8b1a1a3e4d100db6ea8da6af698 Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Fri, 30 Jun 2017 19:48:06 +0300 Subject: [PATCH] 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 --- .../idea/configuration/KotlinGradleProjectResolverExtension.kt | 3 +++ .../idea/configuration/KotlinGradleSourceSetDataService.kt | 2 ++ 2 files changed, 5 insertions(+) diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleProjectResolverExtension.kt b/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleProjectResolverExtension.kt index 33d38c257d1..a623bc44599 100644 --- a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleProjectResolverExtension.kt +++ b/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleProjectResolverExtension.kt @@ -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.GradleProjectResolverUtil.getModuleId +var DataNode.isResolved + by NotNullableUserDataProperty(Key.create("IS_RESOLVED"), false) var DataNode.hasKotlinPlugin by NotNullableUserDataProperty(Key.create("HAS_KOTLIN_PLUGIN"), false) var DataNode.compilerArgumentsBySourceSet @@ -68,6 +70,7 @@ class KotlinGradleProjectResolverExtension : AbstractProjectResolverExtension() } } + ideModule.isResolved = true ideModule.hasKotlinPlugin = gradleModel.hasKotlinPlugin ideModule.compilerArgumentsBySourceSet = gradleModel.compilerArgumentsBySourceSet ideModule.coroutines = gradleModel.coroutines diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleSourceSetDataService.kt b/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleSourceSetDataService.kt index 60f142ab293..78fae377477 100644 --- a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleSourceSetDataService.kt +++ b/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleSourceSetDataService.kt @@ -112,6 +112,8 @@ private fun configureFacetByGradleModule( ideModule: Module, modelsProvider: IdeModifiableModelsProvider ): KotlinFacet? { + if (!moduleNode.isResolved) return null + if (!moduleNode.hasKotlinPlugin) { val facetModel = modelsProvider.getModifiableFacetModel(ideModule) val facet = facetModel.getFacetByType(KotlinFacetType.TYPE_ID)