PY-81030, PY-81269, PY-80690 Do not store millions of PyNoneLiteralExpression instances in the cache

GitOrigin-RevId: 8b38eaf581081896b2c17ad862fd3667431e2766
This commit is contained in:
Andrey Vokin
2025-05-28 14:09:01 +00:00
committed by intellij-monorepo-bot
parent e7e57d145b
commit a589598718
@@ -11,10 +11,7 @@ import com.intellij.psi.PsiFile;
import com.intellij.util.ArrayUtil;
import com.intellij.util.ProcessingContext;
import com.intellij.util.containers.CollectionFactory;
import com.jetbrains.python.psi.AccessDirection;
import com.jetbrains.python.psi.PyCallable;
import com.jetbrains.python.psi.PyExpression;
import com.jetbrains.python.psi.PyTypedElement;
import com.jetbrains.python.psi.*;
import com.jetbrains.python.psi.impl.PyTypeProvider;
import com.jetbrains.python.psi.resolve.PyResolveContext;
import com.jetbrains.python.psi.resolve.RatedResolveResult;
@@ -216,6 +213,9 @@ public sealed class TypeEvalContext {
}
protected @Nullable PyType getKnownType(final @NotNull PyTypedElement element) {
if (element instanceof PyNoneLiteralExpression) {
return element.getType(this, Key.INSTANCE);
}
final PyType cachedType = myEvaluated.get(element);
if (cachedType != null) {
assertValid(cachedType, element);