Don't break dependency import on invalid 'implement' dependency
This commit is contained in:
+14
-9
@@ -58,8 +58,21 @@ class KotlinGradleProjectResolverExtension : AbstractProjectResolverExtension()
|
|||||||
override fun populateModuleDependencies(gradleModule: IdeaModule,
|
override fun populateModuleDependencies(gradleModule: IdeaModule,
|
||||||
ideModule: DataNode<ModuleData>,
|
ideModule: DataNode<ModuleData>,
|
||||||
ideProject: DataNode<ProjectData>) {
|
ideProject: DataNode<ProjectData>) {
|
||||||
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<ProjectData>, gradleModule: IdeaModule, ideModule: DataNode<ModuleData>) {
|
||||||
gradleModel.transitiveCommonDependencies.forEach { implementsModuleId ->
|
gradleModel.transitiveCommonDependencies.forEach { implementsModuleId ->
|
||||||
val targetModule = findModule(ideProject, implementsModuleId) ?: return
|
val targetModule = findModule(ideProject, implementsModuleId) ?: return
|
||||||
if (resolverCtx.isResolveModulePerSourceSet) {
|
if (resolverCtx.isResolveModulePerSourceSet) {
|
||||||
@@ -69,14 +82,6 @@ class KotlinGradleProjectResolverExtension : AbstractProjectResolverExtension()
|
|||||||
addDependency(ideModule, targetModule)
|
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<out ModuleData>, targetModule: DataNode<out ModuleData>) {
|
private fun addDependency(ideModule: DataNode<out ModuleData>, targetModule: DataNode<out ModuleData>) {
|
||||||
|
|||||||
Reference in New Issue
Block a user