From ffb28d92c9cb33852f7fc848377aeb52157f9968 Mon Sep 17 00:00:00 2001 From: Mikhail Golubev Date: Wed, 22 Jan 2025 15:20:13 +0200 Subject: [PATCH] [python] Add a comment explaining the meaning of TypeEvalContext.Key GitOrigin-RevId: eddc81498f070efffb79c0698bb30e69f35b289b --- .../src/com/jetbrains/python/psi/types/TypeEvalContext.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/python/python-psi-api/src/com/jetbrains/python/psi/types/TypeEvalContext.java b/python/python-psi-api/src/com/jetbrains/python/psi/types/TypeEvalContext.java index e53fa72ef371..c1185caa60bf 100644 --- a/python/python-psi-api/src/com/jetbrains/python/psi/types/TypeEvalContext.java +++ b/python/python-psi-api/src/com/jetbrains/python/psi/types/TypeEvalContext.java @@ -23,6 +23,12 @@ import java.util.Map; public final class TypeEvalContext { + /** + * This class ensures that only {@link TypeEvalContext} instances can directly invoke + * {@link PyTypedElement#getType(TypeEvalContext, Key)} and everybody else has to + * access its result though {@link #getType(PyTypedElement)} or {@link #getReturnType(PyCallable)}. + * Hence, the inferred type information cannot bypass caching in {@link TypeEvalContext}. + */ public static final class Key { private static final Key INSTANCE = new Key();