diff --git a/platform/projectModel-impl/src/com/intellij/workspaceModel/ide/impl/legacyBridge/module/ModuleExportedDependenciesGraph.kt b/platform/projectModel-impl/src/com/intellij/workspaceModel/ide/impl/legacyBridge/module/ModuleExportedDependenciesGraph.kt index d7edce472319..fe51a3c2f693 100644 --- a/platform/projectModel-impl/src/com/intellij/workspaceModel/ide/impl/legacyBridge/module/ModuleExportedDependenciesGraph.kt +++ b/platform/projectModel-impl/src/com/intellij/workspaceModel/ide/impl/legacyBridge/module/ModuleExportedDependenciesGraph.kt @@ -14,7 +14,6 @@ import com.intellij.platform.workspace.storage.EntityStorage import com.intellij.platform.workspace.storage.VersionedEntityStorage import com.intellij.util.graph.Graph import org.jetbrains.annotations.ApiStatus -import java.util.concurrent.ConcurrentHashMap /** * [Graph.getIn] returns [ModuleEntity] which depend on the given module taking into account exported dependencies. @@ -42,7 +41,6 @@ class ModuleExportedDependenciesGraph(project: Project) { fun buildGraph(storage: EntityStorage): Graph { return object : Graph { private val directDependents: Map> - private val cache = ConcurrentHashMap>() init { val dependentsMap = HashMap>() @@ -65,23 +63,21 @@ class ModuleExportedDependenciesGraph(project: Project) { } override fun getIn(node: ModuleEntity): Iterator { - return cache.computeIfAbsent(node) { - val result = HashSet() - val queue = ArrayDeque() - queue.add(node) + val result = HashSet() + val queue = ArrayDeque() + queue.add(node) - while (queue.isNotEmpty()) { - val current = queue.removeFirst() - val edges = directDependents[current.symbolicId] ?: emptyList() + while (queue.isNotEmpty()) { + val current = queue.removeFirst() + val edges = directDependents[current.symbolicId] ?: emptyList() - for (edge in edges) { - if (result.add(edge.dependent) && edge.exported) { - queue.add(edge.dependent) - } + for (edge in edges) { + if (result.add(edge.dependent) && edge.exported) { + queue.add(edge.dependent) } } - result - }.iterator() + } + return result.iterator() } override fun getOut(node: ModuleEntity): Iterator {