From e5226b9cf5fbd284fdfab494841acd1e89c02411 Mon Sep 17 00:00:00 2001 From: Mikhail Golubev Date: Mon, 25 Jun 2018 17:26:13 +0300 Subject: [PATCH] EA-121262 Don't include incomplete from imports in implicit package members --- python/src/com/jetbrains/python/psi/types/PyModuleType.java | 6 ++---- .../multiFile/incompleteFromImport/IncompleteFromImport.py | 4 ++++ .../resolve/multiFile/incompleteFromImport/pkg/__init__.py | 1 + .../resolve/multiFile/incompleteFromImport/pkg/bar.py | 0 .../com/jetbrains/python/PyMultiFileResolveTest.java | 5 +++++ 5 files changed, 12 insertions(+), 4 deletions(-) create mode 100644 python/testData/resolve/multiFile/incompleteFromImport/IncompleteFromImport.py create mode 100644 python/testData/resolve/multiFile/incompleteFromImport/pkg/__init__.py create mode 100644 python/testData/resolve/multiFile/incompleteFromImport/pkg/bar.py diff --git a/python/src/com/jetbrains/python/psi/types/PyModuleType.java b/python/src/com/jetbrains/python/psi/types/PyModuleType.java index 22499e953d8a..7c1089745939 100644 --- a/python/src/com/jetbrains/python/psi/types/PyModuleType.java +++ b/python/src/com/jetbrains/python/psi/types/PyModuleType.java @@ -29,7 +29,6 @@ import com.jetbrains.python.psi.*; import com.jetbrains.python.psi.impl.PyImportedModule; import com.jetbrains.python.psi.impl.ResolveResultList; import com.jetbrains.python.psi.resolve.*; -import com.jetbrains.python.sdk.PythonSdkType; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -293,9 +292,8 @@ public class PyModuleType implements PyType { // Modules don't descend from obje final String visibleName = element.getVisibleName(); if (importedQName != null) { importedQNames.add(importedQName); - final QualifiedName implicitSubModuleQName = importedQName.append(visibleName); - if (implicitSubModuleQName != null) { - importedQNames.add(implicitSubModuleQName); + if (visibleName != null) { + importedQNames.add(importedQName.append(visibleName)); } } else { diff --git a/python/testData/resolve/multiFile/incompleteFromImport/IncompleteFromImport.py b/python/testData/resolve/multiFile/incompleteFromImport/IncompleteFromImport.py new file mode 100644 index 000000000000..df7d5ca7522e --- /dev/null +++ b/python/testData/resolve/multiFile/incompleteFromImport/IncompleteFromImport.py @@ -0,0 +1,4 @@ +import pkg + +pkg.unresolved +# \ No newline at end of file diff --git a/python/testData/resolve/multiFile/incompleteFromImport/pkg/__init__.py b/python/testData/resolve/multiFile/incompleteFromImport/pkg/__init__.py new file mode 100644 index 000000000000..9b62035bee11 --- /dev/null +++ b/python/testData/resolve/multiFile/incompleteFromImport/pkg/__init__.py @@ -0,0 +1 @@ +from bar import \ No newline at end of file diff --git a/python/testData/resolve/multiFile/incompleteFromImport/pkg/bar.py b/python/testData/resolve/multiFile/incompleteFromImport/pkg/bar.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/python/testSrc/com/jetbrains/python/PyMultiFileResolveTest.java b/python/testSrc/com/jetbrains/python/PyMultiFileResolveTest.java index 71c553cb33f5..1f77fe43ddaa 100644 --- a/python/testSrc/com/jetbrains/python/PyMultiFileResolveTest.java +++ b/python/testSrc/com/jetbrains/python/PyMultiFileResolveTest.java @@ -583,4 +583,9 @@ public class PyMultiFileResolveTest extends PyMultiFileResolveTestCase { } ); } + + // EA-121262 + public void testIncompleteFromImport() { + assertUnresolved(); + } } \ No newline at end of file