From 86d84f6f6583a2f64cf88717cc94ae070f423415 Mon Sep 17 00:00:00 2001 From: Mikhail Golubev Date: Fri, 14 Apr 2017 17:18:17 +0300 Subject: [PATCH] PY-22734 Don't capture local variable in the lambda used as a cached value provider Otherwise, we re-compute the function's result type using a stale type comment. --- .../python/codeInsight/typing/PyTypingTypeProvider.java | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/python/src/com/jetbrains/python/codeInsight/typing/PyTypingTypeProvider.java b/python/src/com/jetbrains/python/codeInsight/typing/PyTypingTypeProvider.java index 30694b3fd996..b27b06811b83 100644 --- a/python/src/com/jetbrains/python/codeInsight/typing/PyTypingTypeProvider.java +++ b/python/src/com/jetbrains/python/codeInsight/typing/PyTypingTypeProvider.java @@ -23,10 +23,7 @@ import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Ref; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiPolyVariantReference; -import com.intellij.psi.util.CachedValueProvider; -import com.intellij.psi.util.CachedValuesManager; -import com.intellij.psi.util.PsiTreeUtil; -import com.intellij.psi.util.QualifiedName; +import com.intellij.psi.util.*; import com.intellij.util.containers.ContainerUtil; import com.intellij.util.containers.HashMap; import com.intellij.util.containers.HashSet; @@ -285,7 +282,7 @@ public class PyTypingTypeProvider extends PyTypeProviderBase { return null; } final PyFunctionTypeAnnotationFile file = CachedValuesManager.getCachedValue(function, () -> - CachedValueProvider.Result.create(new PyFunctionTypeAnnotationFile(comment, function), function)); + CachedValueProvider.Result.create(new PyFunctionTypeAnnotationFile(function.getTypeCommentAnnotation(), function), function)); return file.getAnnotation(); }