diff --git a/idea/idea-android/src/org/jetbrains/kotlin/android/configure/AndroidGradleModelFacade.kt b/idea/idea-android/src/org/jetbrains/kotlin/android/configure/AndroidGradleModelFacade.kt index a6b6d9f26ba..31e3bec8974 100644 --- a/idea/idea-android/src/org/jetbrains/kotlin/android/configure/AndroidGradleModelFacade.kt +++ b/idea/idea-android/src/org/jetbrains/kotlin/android/configure/AndroidGradleModelFacade.kt @@ -61,7 +61,7 @@ class AndroidGradleModelFacade : KotlinGradleModelFacade { override fun getDependencyModules(ideModule: DataNode, gradleIdeaProject: IdeaProject): Collection> { val ideProject = ideModule.parent as DataNode ExternalSystemApiUtil.find(ideModule, AndroidProjectKeys.JAVA_MODULE_MODEL)?.let { javaModuleModel -> - val moduleNames = javaModuleModel.data.javaModuleDependencies.map { it.moduleName } + val moduleNames = javaModuleModel.data.javaModuleDependencies.map { it.moduleName }.toHashSet() return findModulesByNames(moduleNames, gradleIdeaProject, ideProject) } ExternalSystemApiUtil.find(ideModule, AndroidProjectKeys.ANDROID_MODEL)?.let { androidModel -> diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/inspections/gradle/KotlinGradleModelFacade.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/inspections/gradle/KotlinGradleModelFacade.kt index 29d6851f5c8..e67badac96a 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/inspections/gradle/KotlinGradleModelFacade.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/inspections/gradle/KotlinGradleModelFacade.kt @@ -23,7 +23,6 @@ import com.intellij.openapi.externalSystem.model.ProjectKeys import com.intellij.openapi.externalSystem.model.project.ModuleData import com.intellij.openapi.externalSystem.model.project.ProjectData import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil -import org.gradle.tooling.model.idea.IdeaModuleDependency import org.gradle.tooling.model.idea.IdeaProject interface KotlinGradleModelFacade { @@ -50,8 +49,7 @@ class DefaultGradleModelFacade : KotlinGradleModelFacade { override fun getDependencyModules(ideModule: DataNode, gradleIdeaProject: IdeaProject): Collection> { val ideProject = ideModule.parent as DataNode - val gradleModule = gradleIdeaProject.modules.firstOrNull { it.gradleProject.path == ideModule.data.id } - val dependencyModuleNames = gradleModule?.dependencies?.mapNotNull { (it as? IdeaModuleDependency)?.targetModuleName } ?: return emptyList() + val dependencyModuleNames = ExternalSystemApiUtil.getChildren(ideModule, ProjectKeys.MODULE_DEPENDENCY).map { it.data.target.externalName }.toHashSet() return findModulesByNames(dependencyModuleNames, gradleIdeaProject, ideProject) } } @@ -66,11 +64,7 @@ fun getDependencyModules(moduleData: DataNode, gradleIdeaProject: Id return emptyList() } -fun findModulesByNames(dependencyModuleNames: List, gradleIdeaProject: IdeaProject, ideProject: DataNode): LinkedHashSet> { - return dependencyModuleNames.mapNotNullTo(LinkedHashSet()) { targetModuleName -> - val targetGradleModule = gradleIdeaProject.modules.firstOrNull { it.name == targetModuleName } ?: return@mapNotNullTo null - ExternalSystemApiUtil.findFirstRecursively(ideProject) { - (it.data as? ModuleData)?.id == targetGradleModule.gradleProject.path - } as DataNode? - } +fun findModulesByNames(dependencyModuleNames: Set, gradleIdeaProject: IdeaProject, ideProject: DataNode): LinkedHashSet> { + val modules = ExternalSystemApiUtil.getChildren(ideProject, ProjectKeys.MODULE) + return modules.filterTo(LinkedHashSet()) { it.data.externalName in dependencyModuleNames } }