diff --git a/compiler/frontend/src/org/jetbrains/kotlin/psi/stubs/StubInterfaces.kt b/compiler/frontend/src/org/jetbrains/kotlin/psi/stubs/StubInterfaces.kt index 3cc763658f6..45eee7c8c89 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/psi/stubs/StubInterfaces.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/psi/stubs/StubInterfaces.kt @@ -27,7 +27,7 @@ import org.jetbrains.kotlin.psi.* public interface KotlinFileStub : PsiFileStub { public fun getPackageFqName(): FqName public fun isScript(): Boolean - public fun findImportByAlias(alias: String): KotlinImportDirectiveStub? + public fun findImportsByAlias(alias: String): List } public interface KotlinPlaceHolderStub : StubElement diff --git a/compiler/frontend/src/org/jetbrains/kotlin/psi/stubs/impl/KotlinFileStubImpl.kt b/compiler/frontend/src/org/jetbrains/kotlin/psi/stubs/impl/KotlinFileStubImpl.kt index 22b153f123d..8f48ea63b77 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/psi/stubs/impl/KotlinFileStubImpl.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/psi/stubs/impl/KotlinFileStubImpl.kt @@ -45,8 +45,8 @@ public class KotlinFileStubImpl(jetFile: JetFile?, private val packageName: Stri return childrenStubs.filterIsInstance>().map { it.psi }.toTypedArray() } - override fun findImportByAlias(alias: String): KotlinImportDirectiveStub? { - val importList = childrenStubs.firstOrNull { it.stubType == JetStubElementTypes.IMPORT_LIST } ?: return null - return importList.childrenStubs.filterIsInstance().firstOrNull { it.getAliasName() == alias } + override fun findImportsByAlias(alias: String): List { + val importList = childrenStubs.firstOrNull { it.stubType == JetStubElementTypes.IMPORT_LIST } ?: return emptyList() + return importList.childrenStubs.filterIsInstance().filter { it.getAliasName() == alias } } } diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/stubindex/StubIndexServiceImpl.java b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/stubindex/StubIndexServiceImpl.java index 79c1fa38633..256808babd9 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/stubindex/StubIndexServiceImpl.java +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/stubindex/StubIndexServiceImpl.java @@ -24,6 +24,8 @@ import org.jetbrains.kotlin.psi.stubs.*; import org.jetbrains.kotlin.psi.stubs.elements.StubIndexService; import org.jetbrains.kotlin.util.UtilPackage; +import java.util.List; + public class StubIndexServiceImpl implements StubIndexService { @Override @@ -127,9 +129,9 @@ public class StubIndexServiceImpl implements StubIndexService { KotlinFileStub fileStub = getContainingFileStub(stub); if (fileStub != null) { - KotlinImportDirectiveStub aliasImportStub = fileStub.findImportByAlias(stub.getShortName()); - if (aliasImportStub != null) { - sink.occurrence(JetAnnotationsIndex.getInstance().getKey(), aliasImportStub.getImportedFqName().shortName().asString()); + List aliasImportStubs = fileStub.findImportsByAlias(stub.getShortName()); + for (KotlinImportDirectiveStub importStub : aliasImportStubs) { + sink.occurrence(JetAnnotationsIndex.getInstance().getKey(), importStub.getImportedFqName().shortName().asString()); } } } diff --git a/idea/src/org/jetbrains/kotlin/idea/search/ideaExtensions/KotlinAnnotatedElementsSearcher.kt b/idea/src/org/jetbrains/kotlin/idea/search/ideaExtensions/KotlinAnnotatedElementsSearcher.kt index 53ca47e36f1..eed12d6c5af 100644 --- a/idea/src/org/jetbrains/kotlin/idea/search/ideaExtensions/KotlinAnnotatedElementsSearcher.kt +++ b/idea/src/org/jetbrains/kotlin/idea/search/ideaExtensions/KotlinAnnotatedElementsSearcher.kt @@ -33,6 +33,7 @@ import org.jetbrains.kotlin.idea.caches.resolve.analyze import org.jetbrains.kotlin.idea.stubindex.JetAnnotationsIndex import org.jetbrains.kotlin.idea.util.application.runReadAction import org.jetbrains.kotlin.psi.* +import org.jetbrains.kotlin.psi.psiUtil.collectDescendantsOfType import org.jetbrains.kotlin.psi.psiUtil.getChildrenOfType import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType import org.jetbrains.kotlin.resolve.BindingContext @@ -91,7 +92,7 @@ public class KotlinAnnotatedElementsSearcher : QueryExecutor().asIterable() } + return (useScope as LocalSearchScope).scope.flatMap { it.collectDescendantsOfType() } }) }