diff --git a/python/python-psi-impl/src/com/jetbrains/python/codeInsight/completion/PyModuleNameCompletionContributor.kt b/python/python-psi-impl/src/com/jetbrains/python/codeInsight/completion/PyModuleNameCompletionContributor.kt index 90a9ef3b7f95..bcace3b5fe81 100644 --- a/python/python-psi-impl/src/com/jetbrains/python/codeInsight/completion/PyModuleNameCompletionContributor.kt +++ b/python/python-psi-impl/src/com/jetbrains/python/codeInsight/completion/PyModuleNameCompletionContributor.kt @@ -19,6 +19,7 @@ import com.jetbrains.python.codeInsight.completion.PythonCompletionWeigher.NOT_I import com.jetbrains.python.psi.PyFile import com.jetbrains.python.psi.PyImportStatementBase import com.jetbrains.python.psi.PyReferenceExpression +import com.jetbrains.python.psi.PyTargetExpression import com.jetbrains.python.psi.resolve.fromFoothold import com.jetbrains.python.psi.resolve.resolveQualifiedName import com.jetbrains.python.psi.types.PyModuleType @@ -97,6 +98,7 @@ class PyModuleNameCompletionContributor : CompletionContributor(), DumbAware { return parent is PyReferenceExpression && !parent.isQualified + && parameters.originalPosition?.parent !is PyTargetExpression && PsiTreeUtil.getParentOfType(element, PyImportStatementBase::class.java) == null } } diff --git a/python/testData/completion/notImportedPackageName/PackageNameNotSuggestedForAssignmentTarget/foobar/__init__.py b/python/testData/completion/notImportedPackageName/PackageNameNotSuggestedForAssignmentTarget/foobar/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/python/testData/completion/notImportedPackageName/PackageNameNotSuggestedForAssignmentTarget/main.py b/python/testData/completion/notImportedPackageName/PackageNameNotSuggestedForAssignmentTarget/main.py new file mode 100644 index 000000000000..4826b904a3dd --- /dev/null +++ b/python/testData/completion/notImportedPackageName/PackageNameNotSuggestedForAssignmentTarget/main.py @@ -0,0 +1 @@ +fooba_var = 42 \ No newline at end of file diff --git a/python/testSrc/com/jetbrains/python/PyNotImportedPackageNameCompletionTest.java b/python/testSrc/com/jetbrains/python/PyNotImportedPackageNameCompletionTest.java index ed59987d7687..83ca26ebd4ba 100644 --- a/python/testSrc/com/jetbrains/python/PyNotImportedPackageNameCompletionTest.java +++ b/python/testSrc/com/jetbrains/python/PyNotImportedPackageNameCompletionTest.java @@ -12,6 +12,14 @@ public class PyNotImportedPackageNameCompletionTest extends PyTestCase { myFixture.checkResultByFile(testName + "/main.after.py"); } + public void testPackageNameNotSuggestedForAssignmentTarget() { + final String testName = getTestName(false); + myFixture.copyDirectoryToProject(testName, ""); + myFixture.configureByFile("main.py"); + myFixture.completeBasic(); + assertDoesntContain(myFixture.getLookupElementStrings(), "foobar"); + } + @Override protected String getTestDataPath() { return super.getTestDataPath() + "/completion/notImportedPackageName/";