Avoid iterating over all idea modules.
Use hash table to quickly lookup idea module by gradle project path
This commit is contained in:
committed by
Vladimir Dolzhenko
parent
713f6e1ed3
commit
02c31a711c
+2
-1
@@ -145,6 +145,7 @@ class KotlinGradleProjectResolverExtension : AbstractProjectResolverExtension()
|
|||||||
ExternalSystemApiUtil.findAll(ideModule, GradleSourceSetData.KEY)
|
ExternalSystemApiUtil.findAll(ideModule, GradleSourceSetData.KEY)
|
||||||
} else listOf(ideModule)
|
} else listOf(ideModule)
|
||||||
|
|
||||||
|
val ideaModulesByGradlePaths = gradleModule.project.modules.groupBy { it.gradleProject.path }
|
||||||
var dirtyDependencies = true
|
var dirtyDependencies = true
|
||||||
for (currentModuleNode in moduleNodesToProcess) {
|
for (currentModuleNode in moduleNodesToProcess) {
|
||||||
val toProcess = ArrayDeque<DataNode<out ModuleData>>().apply { add(currentModuleNode) }
|
val toProcess = ArrayDeque<DataNode<out ModuleData>>().apply { add(currentModuleNode) }
|
||||||
@@ -158,7 +159,7 @@ class KotlinGradleProjectResolverExtension : AbstractProjectResolverExtension()
|
|||||||
} else moduleNode
|
} else moduleNode
|
||||||
|
|
||||||
val ideaModule = if (moduleNodeForGradleModel != ideModule) {
|
val ideaModule = if (moduleNodeForGradleModel != ideModule) {
|
||||||
gradleModule.project.modules.firstOrNull { it.gradleProject.path == moduleNodeForGradleModel?.data?.id }
|
moduleNodeForGradleModel?.data?.id?.let { ideaModulesByGradlePaths[it]?.firstOrNull() }
|
||||||
} else gradleModule
|
} else gradleModule
|
||||||
|
|
||||||
val implementsModuleIds = resolverCtx.getExtraProject(ideaModule, KotlinGradleModel::class.java)?.implements
|
val implementsModuleIds = resolverCtx.getExtraProject(ideaModule, KotlinGradleModel::class.java)?.implements
|
||||||
|
|||||||
Reference in New Issue
Block a user