diff --git a/python/src/com/jetbrains/python/psi/impl/PyFileImpl.java b/python/src/com/jetbrains/python/psi/impl/PyFileImpl.java index 95babb81c43e..c7892c0d7a53 100644 --- a/python/src/com/jetbrains/python/psi/impl/PyFileImpl.java +++ b/python/src/com/jetbrains/python/psi/impl/PyFileImpl.java @@ -91,7 +91,7 @@ public class PyFileImpl extends PsiFileBase implements PyFile, PyExpression { } if (PyNames.INIT_DOT_PY.equals(getName())) { final PyQualifiedName qName = fromImportStatement.getImportSourceQName(); - if (qName != null) { + if (qName != null && !localDeclarations.containsKey(qName.toString())) { localDeclarations.put(qName.getLastComponent(), fromImportStatement); } } diff --git a/python/testData/resolve/multiFile/functionAndSubmoduleNamedIdentically/FunctionAndSubmoduleNamedIdentically.py b/python/testData/resolve/multiFile/functionAndSubmoduleNamedIdentically/FunctionAndSubmoduleNamedIdentically.py new file mode 100644 index 000000000000..c84fbca62660 --- /dev/null +++ b/python/testData/resolve/multiFile/functionAndSubmoduleNamedIdentically/FunctionAndSubmoduleNamedIdentically.py @@ -0,0 +1,3 @@ +import p1 +p1.m1 +# \ No newline at end of file diff --git a/python/testData/resolve/multiFile/functionAndSubmoduleNamedIdentically/p1/__init__.py b/python/testData/resolve/multiFile/functionAndSubmoduleNamedIdentically/p1/__init__.py new file mode 100644 index 000000000000..1393b3efc2c2 --- /dev/null +++ b/python/testData/resolve/multiFile/functionAndSubmoduleNamedIdentically/p1/__init__.py @@ -0,0 +1 @@ +from m1 import m1 \ No newline at end of file diff --git a/python/testData/resolve/multiFile/functionAndSubmoduleNamedIdentically/p1/m1.py b/python/testData/resolve/multiFile/functionAndSubmoduleNamedIdentically/p1/m1.py new file mode 100644 index 000000000000..e4d82ff966bf --- /dev/null +++ b/python/testData/resolve/multiFile/functionAndSubmoduleNamedIdentically/p1/m1.py @@ -0,0 +1,2 @@ +def m1(): + pass \ No newline at end of file diff --git a/python/testSrc/com/jetbrains/python/PyMultiFileResolveTest.java b/python/testSrc/com/jetbrains/python/PyMultiFileResolveTest.java index ca95c75cccb0..7b0a50192206 100644 --- a/python/testSrc/com/jetbrains/python/PyMultiFileResolveTest.java +++ b/python/testSrc/com/jetbrains/python/PyMultiFileResolveTest.java @@ -381,6 +381,11 @@ public class PyMultiFileResolveTest extends PyResolveTestCase { assertResolvesTo(PyFile.class, "m2.py"); } + // PY-6866 + public void testFunctionAndSubmoduleNamedIdentically() { + assertResolvesTo(PyFunction.class, "m1"); + } + private void prepareTestDirectory() { final String testName = getTestName(true); myFixture.copyDirectoryToProject(testName, "");