diff --git a/python/src/com/jetbrains/python/psi/impl/PyQualifiedReferenceImpl.java b/python/src/com/jetbrains/python/psi/impl/PyQualifiedReferenceImpl.java index 1e08b1084544..ce7ec0db5141 100644 --- a/python/src/com/jetbrains/python/psi/impl/PyQualifiedReferenceImpl.java +++ b/python/src/com/jetbrains/python/psi/impl/PyQualifiedReferenceImpl.java @@ -8,6 +8,7 @@ import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; import com.intellij.util.ArrayUtil; import com.intellij.util.ProcessingContext; +import com.jetbrains.python.PyNames; import com.jetbrains.python.psi.*; import com.jetbrains.python.psi.patterns.SyntaxMatchers; import com.jetbrains.python.psi.resolve.*; @@ -242,7 +243,7 @@ public class PyQualifiedReferenceImpl extends PyReferenceImpl { } final String referencedName = myElement.getReferencedName(); if (element instanceof PyFunction && Comparing.equal(referencedName, ((PyFunction)element).getName()) && - ((PyFunction)element).getContainingClass() != null) { + ((PyFunction)element).getContainingClass() != null && !PyNames.INIT.equals(referencedName)) { final PyExpression qualifier = myElement.getQualifier(); if (qualifier != null && qualifier.getType(TypeEvalContext.fast()) == null) { return true; diff --git a/python/testData/findUsages/UnresolvedClassInit.py b/python/testData/findUsages/UnresolvedClassInit.py new file mode 100644 index 000000000000..4e5df21c202e --- /dev/null +++ b/python/testData/findUsages/UnresolvedClassInit.py @@ -0,0 +1,3 @@ +class B(C): + def __init__(self): + C.__init__(self) \ No newline at end of file diff --git a/python/testSrc/com/jetbrains/python/PyFindUsagesTest.java b/python/testSrc/com/jetbrains/python/PyFindUsagesTest.java index 69e02baf7f8c..e80f0333962e 100644 --- a/python/testSrc/com/jetbrains/python/PyFindUsagesTest.java +++ b/python/testSrc/com/jetbrains/python/PyFindUsagesTest.java @@ -54,6 +54,11 @@ public class PyFindUsagesTest extends PyLightFixtureTestCase { assertUsages(usages, "parm+1"); } + public void testUnresolvedClassInit() { // PY-1450 + final Collection usages = myFixture.testFindUsages("findUsages/UnresolvedClassInit.py"); + assertUsages(usages); + } + private void assertUsages(Collection usages, String... usageTexts) { assertEquals(usageTexts.length, usages.size()); List sortedUsages = new ArrayList(usages);