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.java19
1 files changed, 10 insertions, 9 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 0a575acdc550..259ea3936934 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
@@ -50,27 +50,28 @@ class ModuleWithDependentsScope extends GlobalSearchScope {
myProjectFileIndex = ProjectRootManager.getInstance(module.getProject()).getFileIndex();
myProjectScope = ProjectScope.getProjectScope(module.getProject());
- myModules = new THashSet<Module>();
- myModules.add(module);
-
- fillModules();
+ myModules = buildDependents(myModule);
}
- private void fillModules() {
- ModuleIndex index = getModuleIndex(myModule.getProject());
+ private static Set<Module> buildDependents(Module module) {
+ Set<Module> result = new THashSet<Module>();
+ result.add(module);
+
+ ModuleIndex index = getModuleIndex(module.getProject());
Queue<Module> walkingQueue = new Queue<Module>(10);
- walkingQueue.addLast(myModule);
+ walkingQueue.addLast(module);
while (!walkingQueue.isEmpty()) {
Module current = walkingQueue.pullFirst();
- myModules.addAll(index.plainUsages.get(current));
+ result.addAll(index.plainUsages.get(current));
for (Module dependent : index.exportingUsages.get(current)) {
- if (myModules.add(dependent)) {
+ if (result.add(dependent)) {
walkingQueue.addLast(dependent);
}
}
}
+ return result;
}
private static class ModuleIndex {