From 369f3d6553f5b7a2fd2683871220bbc17931b811 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Fri, 1 Sep 2017 18:04:41 +0200 Subject: [PATCH] Don't break dependency import on invalid 'implement' dependency --- .../KotlinGradleProjectResolverExtension.kt | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleProjectResolverExtension.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleProjectResolverExtension.kt index a623bc44599..bf9e9da1c7c 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleProjectResolverExtension.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleProjectResolverExtension.kt @@ -58,8 +58,21 @@ class KotlinGradleProjectResolverExtension : AbstractProjectResolverExtension() override fun populateModuleDependencies(gradleModule: IdeaModule, ideModule: DataNode, ideProject: DataNode) { - val gradleModel = resolverCtx.getExtraProject(gradleModule, KotlinGradleModel::class.java) ?: return + val gradleModel = resolverCtx.getExtraProject(gradleModule, KotlinGradleModel::class.java) + ?: return super.populateModuleDependencies(gradleModule, ideModule, ideProject) + importTransitiveCommonDependencies(gradleModel, ideProject, gradleModule, ideModule) + + ideModule.isResolved = true + ideModule.hasKotlinPlugin = gradleModel.hasKotlinPlugin + ideModule.compilerArgumentsBySourceSet = gradleModel.compilerArgumentsBySourceSet + ideModule.coroutines = gradleModel.coroutines + ideModule.platformPluginId = gradleModel.platformPluginId + + super.populateModuleDependencies(gradleModule, ideModule, ideProject) + } + + private fun importTransitiveCommonDependencies(gradleModel: KotlinGradleModel, ideProject: DataNode, gradleModule: IdeaModule, ideModule: DataNode) { gradleModel.transitiveCommonDependencies.forEach { implementsModuleId -> val targetModule = findModule(ideProject, implementsModuleId) ?: return if (resolverCtx.isResolveModulePerSourceSet) { @@ -69,14 +82,6 @@ class KotlinGradleProjectResolverExtension : AbstractProjectResolverExtension() addDependency(ideModule, targetModule) } } - - ideModule.isResolved = true - ideModule.hasKotlinPlugin = gradleModel.hasKotlinPlugin - ideModule.compilerArgumentsBySourceSet = gradleModel.compilerArgumentsBySourceSet - ideModule.coroutines = gradleModel.coroutines - ideModule.platformPluginId = gradleModel.platformPluginId - - super.populateModuleDependencies(gradleModule, ideModule, ideProject) } private fun addDependency(ideModule: DataNode, targetModule: DataNode) {