From 35d673b3837f57490581edda7ac5925fcfe9d258 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Mon, 2 Aug 2021 17:42:15 +0200 Subject: [PATCH] [indices] do not request indices for delegated scope with empty base deep unwrap GitOrigin-RevId: a673b5049f58a14111a328ff6ec3565103f0d889 --- .../com/intellij/psi/search/DelegatingGlobalSearchScope.java | 4 ++++ .../src/com/intellij/util/indexing/FileBasedIndexImpl.java | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/platform/core-api/src/com/intellij/psi/search/DelegatingGlobalSearchScope.java b/platform/core-api/src/com/intellij/psi/search/DelegatingGlobalSearchScope.java index 3694e5b5ab31..14ca6137a177 100644 --- a/platform/core-api/src/com/intellij/psi/search/DelegatingGlobalSearchScope.java +++ b/platform/core-api/src/com/intellij/psi/search/DelegatingGlobalSearchScope.java @@ -114,4 +114,8 @@ public class DelegatingGlobalSearchScope extends GlobalSearchScope { public GlobalSearchScope getDelegate() { return myBaseScope; } + + public GlobalSearchScope unwrap() { + return myBaseScope instanceof DelegatingGlobalSearchScope ? ((DelegatingGlobalSearchScope)myBaseScope).unwrap() : myBaseScope; + } } diff --git a/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndexImpl.java b/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndexImpl.java index 08a6c460a997..f0874eaaef05 100644 --- a/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndexImpl.java +++ b/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndexImpl.java @@ -777,7 +777,7 @@ public final class FileBasedIndexImpl extends FileBasedIndexEx { return true; //indexed eagerly in foreground while building unindexed file list } if (filter == GlobalSearchScope.EMPTY_SCOPE || - filter instanceof DelegatingGlobalSearchScope && ((DelegatingGlobalSearchScope)filter).getDelegate() == GlobalSearchScope.EMPTY_SCOPE) { + filter instanceof DelegatingGlobalSearchScope && ((DelegatingGlobalSearchScope)filter).unwrap() == GlobalSearchScope.EMPTY_SCOPE) { return false; } if (project == null) {