diff options
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.java | 19 |
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 { |