From 00b9dc286b4319b6245dc794b41652d90c4e0d70 Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Fri, 7 Sep 2018 13:48:37 +0300 Subject: [PATCH] do not call uniteWith() in a loop --- .../src/inspections/DescriptionCheckerUtil.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/plugins/devkit/devkit-core/src/inspections/DescriptionCheckerUtil.java b/plugins/devkit/devkit-core/src/inspections/DescriptionCheckerUtil.java index 7d4917161fcd..5697437649f6 100644 --- a/plugins/devkit/devkit-core/src/inspections/DescriptionCheckerUtil.java +++ b/plugins/devkit/devkit-core/src/inspections/DescriptionCheckerUtil.java @@ -24,6 +24,7 @@ import com.intellij.psi.PsiDirectory; import com.intellij.psi.PsiPackage; import com.intellij.psi.search.GlobalSearchScope; import com.intellij.psi.search.GlobalSearchScopesCore; +import com.intellij.util.containers.ContainerUtil; import one.util.streamex.StreamEx; import org.jetbrains.annotations.Nullable; @@ -36,8 +37,12 @@ public class DescriptionCheckerUtil { () -> GlobalSearchScope.EMPTY_SCOPE, module::getModuleScope, module::getModuleWithDependenciesScope, - () -> ModuleUtilCore.getAllDependentModules(module).stream().map(Module::getModuleContentWithDependenciesScope) - .reduce(GlobalSearchScope::uniteWith).orElse(GlobalSearchScope.EMPTY_SCOPE), + () -> { + GlobalSearchScope[] scopes = ContainerUtil.map2Array(ModuleUtilCore.getAllDependentModules(module), + GlobalSearchScope.EMPTY_ARRAY, + Module::getModuleContentWithDependenciesScope); + return scopes.length == 0 ? GlobalSearchScope.EMPTY_SCOPE : GlobalSearchScope.union(scopes); + }, () -> GlobalSearchScopesCore.projectProductionScope(module.getProject()) ).takeWhile(supplier -> !module.isDisposed()) .map(Supplier::get)