diff --git a/python/python-psi-impl/resources/intellij.python.psi.impl.xml b/python/python-psi-impl/resources/intellij.python.psi.impl.xml
index 2d48452f760c..661b25ab35e5 100644
--- a/python/python-psi-impl/resources/intellij.python.psi.impl.xml
+++ b/python/python-psi-impl/resources/intellij.python.psi.impl.xml
@@ -44,6 +44,7 @@
+
diff --git a/python/python-psi-impl/src/com/jetbrains/python/psi/PyFileElementType.java b/python/python-psi-impl/src/com/jetbrains/python/psi/PyFileElementType.java
index cc71b00ef9f5..a7d4e4ee7aeb 100644
--- a/python/python-psi-impl/src/com/jetbrains/python/psi/PyFileElementType.java
+++ b/python/python-psi-impl/src/com/jetbrains/python/psi/PyFileElementType.java
@@ -60,7 +60,7 @@ public class PyFileElementType extends IStubFileElementType {
@Override
public int getStubVersion() {
// Don't forget to update versions of indexes that use the updated stub-based elements
- return 101;
+ return 102;
}
@Override
diff --git a/python/python-psi-impl/src/com/jetbrains/python/psi/impl/stubs/PyImportElementElementType.java b/python/python-psi-impl/src/com/jetbrains/python/psi/impl/stubs/PyImportElementElementType.java
index 92108ba841b3..9581b15c73b4 100644
--- a/python/python-psi-impl/src/com/jetbrains/python/psi/impl/stubs/PyImportElementElementType.java
+++ b/python/python-psi-impl/src/com/jetbrains/python/psi/impl/stubs/PyImportElementElementType.java
@@ -3,10 +3,7 @@ package com.jetbrains.python.psi.impl.stubs;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
-import com.intellij.psi.stubs.IStubElementType;
-import com.intellij.psi.stubs.StubElement;
-import com.intellij.psi.stubs.StubInputStream;
-import com.intellij.psi.stubs.StubOutputStream;
+import com.intellij.psi.stubs.*;
import com.intellij.psi.util.QualifiedName;
import com.jetbrains.python.PyStubElementTypes;
import com.jetbrains.python.psi.PyImportElement;
@@ -14,6 +11,7 @@ import com.jetbrains.python.psi.PyStubElementType;
import com.jetbrains.python.psi.PyTargetExpression;
import com.jetbrains.python.psi.impl.PyImportElementImpl;
import com.jetbrains.python.psi.stubs.PyImportElementStub;
+import com.jetbrains.python.psi.stubs.PyImportNameIndex;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
@@ -45,6 +43,14 @@ public class PyImportElementElementType extends PyStubElementType() {
+ companion object {
+ @JvmField
+ val KEY: StubIndexKey = StubIndexKey.createIndexKey("python.import.name")
+
+ fun containsImport(name: String, project: Project): Boolean {
+ val projectScope = GlobalSearchScope.projectScope(project)
+ var found = false
+ StubIndex.getInstance().processElements(KEY, name, project, projectScope, PyImportElement::class.java) {
+ found = true
+ return@processElements false
+ }
+ return found
+ }
+ }
+
+ override fun getKey(): StubIndexKey = KEY
+}
\ No newline at end of file