diff --git a/python/src/com/jetbrains/python/psi/impl/PyBaseElementImpl.java b/python/src/com/jetbrains/python/psi/impl/PyBaseElementImpl.java index 4bea56bffe8f..8af023bc8b18 100644 --- a/python/src/com/jetbrains/python/psi/impl/PyBaseElementImpl.java +++ b/python/src/com/jetbrains/python/psi/impl/PyBaseElementImpl.java @@ -131,8 +131,12 @@ public class PyBaseElementImpl extends StubBasedPsiElemen offset = getTextRange().getStartOffset() + offset - element.getTextRange().getStartOffset(); List referencesList = new ArrayList(); + final PsiFile file = element.getContainingFile(); + final PyResolveContext resolveContext = file != null ? + PyResolveContext.defaultContext().withTypeEvalContext(TypeEvalContext.fastStubOnly(file)) : + PyResolveContext.defaultContext(); while (element != null) { - addReferences(offset, element, referencesList); + addReferences(offset, element, referencesList, resolveContext); offset = element.getStartOffsetInParent() + offset; if (element instanceof PsiFile) break; element = element.getParent(); @@ -144,14 +148,11 @@ public class PyBaseElementImpl extends StubBasedPsiElemen referencesList.get(referencesList.size() - 1).getElement()); } - private static void addReferences(int offset, PsiElement element, final Collection outReferences) { + private static void addReferences(int offset, PsiElement element, final Collection outReferences, + PyResolveContext resolveContext) { final PsiReference[] references; if (element instanceof PyReferenceOwner) { - final PsiFile file = element.getContainingFile(); - final PyResolveContext context = file != null ? - PyResolveContext.defaultContext().withTypeEvalContext(TypeEvalContext.fastStubOnly(file)) : - PyResolveContext.defaultContext(); - final PsiPolyVariantReference reference = ((PyReferenceOwner)element).getReference(context); + final PsiPolyVariantReference reference = ((PyReferenceOwner)element).getReference(resolveContext); references = reference == null ? PsiReference.EMPTY_ARRAY : new PsiReference[] {reference}; } else {