From 2d52a38a011377903dc0c46c43f2fea87b833323 Mon Sep 17 00:00:00 2001 From: "Ilya.Kazakevich" Date: Fri, 9 Jun 2017 02:23:00 +0300 Subject: [PATCH] PY-23320: Cache qualified names --- .../python/psi/resolve/QualifiedNameFinder.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/python/src/com/jetbrains/python/psi/resolve/QualifiedNameFinder.java b/python/src/com/jetbrains/python/psi/resolve/QualifiedNameFinder.java index d7aa971e1d88..f444fa1ff017 100644 --- a/python/src/com/jetbrains/python/psi/resolve/QualifiedNameFinder.java +++ b/python/src/com/jetbrains/python/psi/resolve/QualifiedNameFinder.java @@ -24,6 +24,9 @@ import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.VfsUtilCore; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.*; +import com.intellij.psi.util.CachedValueProvider.Result; +import com.intellij.psi.util.CachedValuesManager; +import com.intellij.psi.util.PsiModificationTracker; import com.intellij.psi.util.QualifiedName; import com.jetbrains.python.PyNames; import com.jetbrains.python.codeInsight.controlflow.ScopeOwner; @@ -174,6 +177,12 @@ public class QualifiedNameFinder { @Nullable public static String getQualifiedName(@NotNull PyElement element) { + return CachedValuesManager.getCachedValue(element, () -> + new Result<>(getQualifiedNameInner(element), PsiModificationTracker.MODIFICATION_COUNT)); + } + + @Nullable + private static String getQualifiedNameInner(@NotNull final PyElement element) { final String name = element.getName(); if (name != null) { final ScopeOwner owner = ScopeUtil.getScopeOwner(element);