optimization: do not recalculate hashCode of 10K+-sized lists on each typing, do not store them in the map keys (part of KTIJ-27513 K2 IDE: Slow reference search for specific symbols in unused symbol inspection)

GitOrigin-RevId: 62930faef52b3b5039e7f20720de5970a22d943e
This commit is contained in:
Alexey Kudravtsev
2024-09-12 14:35:02 +02:00
committed by intellij-monorepo-bot
parent 40ae8de2c4
commit a7c08af12a
4 changed files with 41 additions and 20 deletions

View File

@@ -72,10 +72,9 @@ public final class JavaResolveScopeProvider extends ResolveScopeProvider {
@Nullable
private static JavaVersionBasedScope getClassFileScope(@NotNull VirtualFile file, @NotNull Project project) {
ProjectFileIndex index = project.isDefault() ? null : ProjectRootManager.getInstance(project).getFileIndex();
LanguageLevel level = JavaMultiReleaseUtil.getVersion(file);
if (level != null && index != null) {
GlobalSearchScope baseScope = LibraryScopeCache.getInstance(project).getLibraryScope(index.getOrderEntriesForFile(file));
if (level != null && !project.isDefault()) {
GlobalSearchScope baseScope = LibraryScopeCache.getInstance(project).getLibraryScope(file);
return new JavaVersionBasedScope(project, baseScope, level);
}
return null;