From 7041d0ec6194c1df5dc77713fbb07611f860310e Mon Sep 17 00:00:00 2001 From: Semyon Proshev Date: Tue, 10 Apr 2018 22:18:30 +0300 Subject: [PATCH] Fix processing six.with_metaclass and six.add_metaclass reimported through Django --- .../src/com/jetbrains/python/psi/impl/PyClassImpl.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/python/src/com/jetbrains/python/psi/impl/PyClassImpl.java b/python/src/com/jetbrains/python/psi/impl/PyClassImpl.java index 9e3ddd802bc0..2f9c8badb697 100644 --- a/python/src/com/jetbrains/python/psi/impl/PyClassImpl.java +++ b/python/src/com/jetbrains/python/psi/impl/PyClassImpl.java @@ -194,7 +194,10 @@ public class PyClassImpl extends PyBaseElementImpl implements PyCla if (callee instanceof PyReferenceExpression) { final QualifiedName sixWithMetaclass = QualifiedName.fromComponents("six", "with_metaclass"); - return PyResolveUtil.resolveImportedElementQNameLocally((PyReferenceExpression)callee).contains(sixWithMetaclass); + final QualifiedName djangoWithMetaclass = QualifiedName.fromDottedString("django.utils.six.with_metaclass"); + + return ContainerUtil.exists(PyResolveUtil.resolveImportedElementQNameLocally((PyReferenceExpression)callee), + name -> name.equals(sixWithMetaclass) || name.equals(djangoWithMetaclass)); } } @@ -1614,7 +1617,10 @@ public class PyClassImpl extends PyBaseElementImpl implements PyCla if (callee instanceof PyReferenceExpression) { final QualifiedName sixAddMetaclass = QualifiedName.fromComponents("six", "add_metaclass"); - return PyResolveUtil.resolveImportedElementQNameLocally((PyReferenceExpression)callee).contains(sixAddMetaclass); + final QualifiedName djangoAddMetaclass = QualifiedName.fromDottedString("django.utils.six.add_metaclass"); + + return ContainerUtil.exists(PyResolveUtil.resolveImportedElementQNameLocally((PyReferenceExpression)callee), + name -> name.equals(sixAddMetaclass) || name.equals(djangoAddMetaclass)); } return false;