From fb13d934182067747fd99a1b344f85f092ef63c8 Mon Sep 17 00:00:00 2001 From: "Gregory.Shrago" Date: Wed, 8 Dec 2021 21:37:57 +0300 Subject: [PATCH] make `isIdeaProject` check faster by avoiding resolve in any form For example, `JSIntellijTestDataIndexingFilter` could lead to reentrant indexing. GitOrigin-RevId: d4ad40739e6e3fb91301bab4abd4728c7c277e05 --- plugins/devkit/devkit-core/src/util/PsiUtil.java | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/plugins/devkit/devkit-core/src/util/PsiUtil.java b/plugins/devkit/devkit-core/src/util/PsiUtil.java index d5f2bc7f0e4f..028f4adc164d 100644 --- a/plugins/devkit/devkit-core/src/util/PsiUtil.java +++ b/plugins/devkit/devkit-core/src/util/PsiUtil.java @@ -4,14 +4,12 @@ package org.jetbrains.idea.devkit.util; import com.intellij.codeInsight.AnnotationUtil; import com.intellij.openapi.module.Module; import com.intellij.openapi.module.ModuleManager; -import com.intellij.openapi.project.DumbService; import com.intellij.openapi.project.Project; import com.intellij.openapi.roots.ProjectRootManager; import com.intellij.openapi.util.Key; import com.intellij.openapi.util.text.StringUtil; import com.intellij.psi.*; import com.intellij.psi.search.GlobalSearchScope; -import com.intellij.psi.search.GlobalSearchScopesCore; import com.intellij.psi.util.CachedValueProvider; import com.intellij.psi.util.CachedValuesManager; import com.intellij.ui.components.JBList; @@ -175,21 +173,12 @@ public final class PsiUtil { } private static boolean checkIdeaProject(@NotNull Project project) { - boolean foundMarkerModule = false; for (String moduleName : IDEA_PROJECT_MARKER_MODULE_NAMES) { if (ModuleManager.getInstance(project).findModuleByName(moduleName) != null) { - foundMarkerModule = true; - break; + return true; } } - if (!foundMarkerModule) { - return false; - } - - return DumbService.getInstance(project).computeWithAlternativeResolveEnabled(() -> { - GlobalSearchScope scope = GlobalSearchScopesCore.projectProductionScope(project); - return JavaPsiFacade.getInstance(project).findClass(IDE_PROJECT_MARKER_CLASS, scope) != null; - }); + return false; } public static boolean isPluginXmlPsiElement(@NotNull PsiElement element) {