summaryrefslogtreecommitdiff
path: root/platform/indexing-impl/src/com/intellij/openapi/module/impl/scopes/ModuleWithDependentsScope.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/indexing-impl/src/com/intellij/openapi/module/impl/scopes/ModuleWithDependentsScope.java')
-rw-r--r--platform/indexing-impl/src/com/intellij/openapi/module/impl/scopes/ModuleWithDependentsScope.java6
1 files changed, 5 insertions, 1 deletions
diff --git a/platform/indexing-impl/src/com/intellij/openapi/module/impl/scopes/ModuleWithDependentsScope.java b/platform/indexing-impl/src/com/intellij/openapi/module/impl/scopes/ModuleWithDependentsScope.java
index 259ea3936934..c773402b27e3 100644
--- a/platform/indexing-impl/src/com/intellij/openapi/module/impl/scopes/ModuleWithDependentsScope.java
+++ b/platform/indexing-impl/src/com/intellij/openapi/module/impl/scopes/ModuleWithDependentsScope.java
@@ -56,6 +56,8 @@ class ModuleWithDependentsScope extends GlobalSearchScope {
private static Set<Module> buildDependents(Module module) {
Set<Module> result = new THashSet<Module>();
result.add(module);
+
+ Set<Module> processedExporting = new THashSet<Module>();
ModuleIndex index = getModuleIndex(module.getProject());
@@ -64,9 +66,11 @@ class ModuleWithDependentsScope extends GlobalSearchScope {
while (!walkingQueue.isEmpty()) {
Module current = walkingQueue.pullFirst();
+ processedExporting.add(current);
result.addAll(index.plainUsages.get(current));
for (Module dependent : index.exportingUsages.get(current)) {
- if (result.add(dependent)) {
+ result.add(dependent);
+ if (processedExporting.add(dependent)) {
walkingQueue.addLast(dependent);
}
}