mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-04-19 04:51:24 +07:00
PY-78304 Use SoftReference to store types in TypeEvalContext
cleanup GitOrigin-RevId: e9b24b1b27c24b29a389d08ede0358cbb33bbe8b
This commit is contained in:
committed by
intellij-monorepo-bot
parent
d55cd9563c
commit
8c1f3b6efa
@@ -177,20 +177,14 @@ public final class TypeEvalContext {
|
||||
() -> {
|
||||
PyType cachedType = myEvaluated.get(element);
|
||||
if (cachedType != null) {
|
||||
if (cachedType == PyNullType.INSTANCE) {
|
||||
cachedType = null;
|
||||
}
|
||||
assertValid(cachedType, element);
|
||||
return cachedType;
|
||||
return cachedType == PyNullType.INSTANCE ? null : cachedType;
|
||||
}
|
||||
|
||||
PyType type = element.getType(this, Key.INSTANCE);
|
||||
assertValid(type, element);
|
||||
if (type == null) {
|
||||
type = PyNullType.INSTANCE;
|
||||
}
|
||||
myEvaluated.put(element, type);
|
||||
return type == PyNullType.INSTANCE ? null : type;
|
||||
myEvaluated.put(element, type == null ? PyNullType.INSTANCE : type);
|
||||
return type;
|
||||
}
|
||||
);
|
||||
}
|
||||
@@ -202,19 +196,13 @@ public final class TypeEvalContext {
|
||||
() -> {
|
||||
PyType cachedType = myEvaluatedReturn.get(callable);
|
||||
if (cachedType != null) {
|
||||
if (cachedType == PyNullType.INSTANCE) {
|
||||
cachedType = null;
|
||||
}
|
||||
assertValid(cachedType, callable);
|
||||
return cachedType;
|
||||
return cachedType == PyNullType.INSTANCE ? null : cachedType;
|
||||
}
|
||||
PyType type = callable.getReturnType(this, Key.INSTANCE);
|
||||
if (type == null) {
|
||||
type = PyNullType.INSTANCE;
|
||||
}
|
||||
assertValid(type, callable);
|
||||
myEvaluatedReturn.put(callable, type);
|
||||
return type == PyNullType.INSTANCE ? null : type;
|
||||
myEvaluatedReturn.put(callable, type == null ? PyNullType.INSTANCE : type);
|
||||
return type;
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user