From 971a9ee872dffa7d2e8544aedebd4cd50c03d198 Mon Sep 17 00:00:00 2001 From: Andrey Vlasovskikh Date: Mon, 16 Nov 2015 19:23:58 +0300 Subject: [PATCH] Use better TypeEvalContext.codeAnalysis() instead of codeInsightFallback() for reference expressions (PY-15558) For PyReferenceExpressionImpl we are sure that we are a part of an AST, not a stub, so we can use the current file as the anchor for a more powerful codeAnalysis() type evaluation context. --- .../jetbrains/python/psi/impl/PyReferenceExpressionImpl.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/python/src/com/jetbrains/python/psi/impl/PyReferenceExpressionImpl.java b/python/src/com/jetbrains/python/psi/impl/PyReferenceExpressionImpl.java index 00b2126aed7c..b99d83a82ab8 100644 --- a/python/src/com/jetbrains/python/psi/impl/PyReferenceExpressionImpl.java +++ b/python/src/com/jetbrains/python/psi/impl/PyReferenceExpressionImpl.java @@ -60,7 +60,10 @@ public class PyReferenceExpressionImpl extends PyElementImpl implements PyRefere @NotNull @Override public PsiPolyVariantReference getReference() { - return getReference(PyResolveContext.defaultContext()); + //noinspection InstanceofIncompatibleInterface + assert !(this instanceof StubBasedPsiElement); + final TypeEvalContext context = TypeEvalContext.codeAnalysis(getProject(), getContainingFile()); + return getReference(PyResolveContext.defaultContext().withTypeEvalContext(context)); } @NotNull