diff --git a/python/src/com/jetbrains/python/psi/impl/PyImportReferenceImpl.java b/python/src/com/jetbrains/python/psi/impl/PyImportReferenceImpl.java index 4b8ba23c1d96..fb39d6a9fe69 100644 --- a/python/src/com/jetbrains/python/psi/impl/PyImportReferenceImpl.java +++ b/python/src/com/jetbrains/python/psi/impl/PyImportReferenceImpl.java @@ -13,6 +13,7 @@ import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.PsiDirectory; import com.intellij.psi.PsiElement; +import com.intellij.psi.PsiErrorElement; import com.intellij.psi.PsiFile; import com.intellij.psi.tree.IElementType; import com.intellij.psi.util.PsiTreeUtil; @@ -79,6 +80,15 @@ public class PyImportReferenceImpl extends PyReferenceImpl { @NotNull @Override public Object[] getVariants() { + // no completion in invalid import statements + PyImportElement importElement = PsiTreeUtil.getParentOfType(myElement, PyImportElement.class); + if (importElement != null) { + PsiErrorElement prevError = PsiTreeUtil.getPrevSiblingOfType(importElement, PsiErrorElement.class); + if (prevError != null) { + return ArrayUtil.EMPTY_OBJECT_ARRAY; + } + } + PyExpression qualifier = myElement.getQualifier(); if (qualifier != null) { // qualifier's type must be module, it should know how to complete diff --git a/python/testData/completion/noIdentifiersInImport.after.py b/python/testData/completion/noIdentifiersInImport.after.py new file mode 100644 index 000000000000..fa69cebacf13 --- /dev/null +++ b/python/testData/completion/noIdentifiersInImport.after.py @@ -0,0 +1 @@ +from sys stdo \ No newline at end of file diff --git a/python/testData/completion/noIdentifiersInImport.py b/python/testData/completion/noIdentifiersInImport.py new file mode 100644 index 000000000000..2d4de66ff563 --- /dev/null +++ b/python/testData/completion/noIdentifiersInImport.py @@ -0,0 +1 @@ +from sys stdo \ No newline at end of file diff --git a/python/testSrc/com/jetbrains/python/PythonCompletionTest.java b/python/testSrc/com/jetbrains/python/PythonCompletionTest.java index ff5ea3578d26..49f607d25a03 100644 --- a/python/testSrc/com/jetbrains/python/PythonCompletionTest.java +++ b/python/testSrc/com/jetbrains/python/PythonCompletionTest.java @@ -263,4 +263,8 @@ public class PythonCompletionTest extends PyLightFixtureTestCase { public void testFromDotImport() { // PY-2772 doTest3K(); } + + public void testNoIdentifiersInImport() { + doTest(); + } }