From 7da7b7ac36036d73c638e749c54c6dd6863a484b Mon Sep 17 00:00:00 2001 From: Anton Bragin Date: Tue, 3 Apr 2018 15:23:05 +0300 Subject: [PATCH] PY-28321 Revert source root order for imports The commit reverts source root order respect for import statements thus reopening PY-28321. The reason is that until pkg_resources and pkgutil namespace packages are not implemented (see PY-16688, PY-23087) the original fix leads to false positives in projects relying on this functionality. As soon as namespace packages support via pkg_resources and pkgutil will be implemented the change should be reverted back to close PY-28321. --- .../com/jetbrains/python/psi/resolve/PyResolveImportUtil.kt | 3 ++- .../testSrc/com/jetbrains/python/PyMultiFileResolveTest.java | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/python/src/com/jetbrains/python/psi/resolve/PyResolveImportUtil.kt b/python/src/com/jetbrains/python/psi/resolve/PyResolveImportUtil.kt index 328685ece839..aabb4983dd46 100644 --- a/python/src/com/jetbrains/python/psi/resolve/PyResolveImportUtil.kt +++ b/python/src/com/jetbrains/python/psi/resolve/PyResolveImportUtil.kt @@ -101,7 +101,8 @@ private fun resolveQualifiedName(name: QualifiedName, val foreignResults = foreignResults(name, context) val pythonResults = listOf(relativeResults, - resolveFromRoots(name, context), + // TODO: replace with resolveFromRoots when namespace package magic features PY-16688, PY-23087 are implemented + resultsFromRoots(name, context), relativeResultsFromSkeletons(name, context)).flatten().distinct() val allResults = pythonResults + foreignResults val results = if (name.componentCount > 0) findFirstResults(pythonResults, context.module) + foreignResults else allResults diff --git a/python/testSrc/com/jetbrains/python/PyMultiFileResolveTest.java b/python/testSrc/com/jetbrains/python/PyMultiFileResolveTest.java index fdde049e300c..71c553cb33f5 100644 --- a/python/testSrc/com/jetbrains/python/PyMultiFileResolveTest.java +++ b/python/testSrc/com/jetbrains/python/PyMultiFileResolveTest.java @@ -467,7 +467,8 @@ public class PyMultiFileResolveTest extends PyMultiFileResolveTestCase { } // PY-28321 - public void testImportManySourceRootsReverseRootOrder() { + // TODO: The test should be turned on as soon as PY-16688 and PY-23087 are implemented + public void ignoreTestImportManySourceRootsReverseRootOrder() { myFixture.copyDirectoryToProject("importManySourceRoots", ""); runWithSourceRoots(Lists.newArrayList(myFixture.findFileInTempDir("root1"), myFixture.findFileInTempDir("root2")), () -> { final PsiFile psiFile = myFixture.configureByFile("root1/pkg/a.py");