diff --git a/python/src/com/jetbrains/python/psi/impl/PyReferenceImpl.java b/python/src/com/jetbrains/python/psi/impl/PyReferenceImpl.java index 72b57a8700cf..700835240b37 100644 --- a/python/src/com/jetbrains/python/psi/impl/PyReferenceImpl.java +++ b/python/src/com/jetbrains/python/psi/impl/PyReferenceImpl.java @@ -291,6 +291,10 @@ public class PyReferenceImpl implements PsiReferenceEx, PsiPolyVariantReference } public boolean isReferenceTo(PsiElement element) { + if (element instanceof PsiFileSystemItem) { + // may be import via alias, so don't check if names match, do simple resolve check instead + return resolve() == element; + } if (element instanceof PsiNamedElement) { final String elementName = ((PsiNamedElement)element).getName(); if ((Comparing.equal(myElement.getReferencedName(), elementName) || PyNames.INIT.equals(elementName)) && !haveQualifiers(element)) { diff --git a/python/testData/findUsages/Imports.py b/python/testData/findUsages/Imports.py new file mode 100644 index 000000000000..24f172b01af6 --- /dev/null +++ b/python/testData/findUsages/Imports.py @@ -0,0 +1,3 @@ +import re + +x = re.compile('') diff --git a/python/testSrc/com/jetbrains/python/PyFindUsagesTest.java b/python/testSrc/com/jetbrains/python/PyFindUsagesTest.java index e80f0333962e..9cca0d6bdf03 100644 --- a/python/testSrc/com/jetbrains/python/PyFindUsagesTest.java +++ b/python/testSrc/com/jetbrains/python/PyFindUsagesTest.java @@ -59,6 +59,11 @@ public class PyFindUsagesTest extends PyLightFixtureTestCase { assertUsages(usages); } + public void testImports() { // PY-1514 + final Collection usages = myFixture.testFindUsages("findUsages/Imports.py"); + assertUsages(usages, "import re", "re.compile"); + } + private void assertUsages(Collection usages, String... usageTexts) { assertEquals(usageTexts.length, usages.size()); List sortedUsages = new ArrayList(usages);