From 605c15509b5dc142fd0c2dc2ba4c63ef8815911d Mon Sep 17 00:00:00 2001 From: Mikhail Golubev Date: Tue, 18 Jul 2017 19:15:11 +0300 Subject: [PATCH] PY-18816 Don't use unstubbed AST to get annotation value if it's not allowed by context even by sacrificing a bit of performance to avoid possible stochastic issues when resolve leads to different results depending on whether a file was parsed or not. --- .../python/codeInsight/typing/PyTypingTypeProvider.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/python/src/com/jetbrains/python/codeInsight/typing/PyTypingTypeProvider.java b/python/src/com/jetbrains/python/codeInsight/typing/PyTypingTypeProvider.java index 9bf273caf633..a79afacfac04 100644 --- a/python/src/com/jetbrains/python/codeInsight/typing/PyTypingTypeProvider.java +++ b/python/src/com/jetbrains/python/codeInsight/typing/PyTypingTypeProvider.java @@ -22,7 +22,6 @@ import com.google.common.collect.Sets; import com.intellij.openapi.util.Ref; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; -import com.intellij.psi.StubBasedPsiElement; import com.intellij.psi.impl.source.resolve.FileContextUtil; import com.intellij.psi.util.CachedValueProvider; import com.intellij.psi.util.CachedValuesManager; @@ -624,8 +623,7 @@ public class PyTypingTypeProvider extends PyTypeProviderBase { @Nullable private static PyExpression getAnnotationValue(@NotNull PyAnnotationOwner owner, @NotNull TypeEvalContext context) { - final boolean elementWasParsed = owner instanceof StubBasedPsiElement && ((StubBasedPsiElement)owner).getStub() == null; - if (context.maySwitchToAST(owner) || elementWasParsed) { + if (context.maySwitchToAST(owner)) { final PyAnnotation annotation = owner.getAnnotation(); if (annotation != null) { return annotation.getValue();