[kotlin] do not try to search Java inheritors from FirIdeKotlinDirectInheritorsProvider

We will still filter them out later

This way we will avoid creating LC when not needed

^KTIJ-31171 fixed

GitOrigin-RevId: d5040c5091962956c9950a2ac00439c72a13aefe
This commit is contained in:
Ilya Kirillov
2024-09-02 19:16:39 +00:00
committed by intellij-monorepo-bot
parent 863696088d
commit a82fbe461a
3 changed files with 3 additions and 0 deletions
@@ -31,6 +31,7 @@ class FirIdeKotlinDirectInheritorsProvider : KotlinDirectInheritorsProvider {
ktClass = ktClass,
searchScope = kotlinOnlyScope,
includeLocal = includeLocalInheritors,
searchOnlyInKotlin = true,
)
return DirectKotlinClassInheritorsSearch.search(searchParameters).filterIsInstance<KtClassOrObject>().toList()
@@ -22,6 +22,7 @@ private val EVERYTHING_BUT_KOTLIN = object : QueryFactory<PsiClass, DirectClassI
internal class DirectKotlinClassDelegatedSearcher : Searcher<DirectKotlinClassInheritorsSearch.SearchParameters, PsiElement> {
@RequiresReadLock
override fun collectSearchRequest(parameters: DirectKotlinClassInheritorsSearch.SearchParameters): Query<out PsiElement>? {
if (parameters.searchOnlyInKotlin) return null
val baseClass = parameters.ktClass
if (baseClass.isEnum()) {
//enum inheritors may be found in the same class only, kotlin class
@@ -23,6 +23,7 @@ object DirectKotlinClassInheritorsSearch {
val searchScope: SearchScope,
val includeAnonymous: Boolean = true,
val includeLocal: Boolean = true,
val searchOnlyInKotlin: Boolean = false,
) : com.intellij.model.search.SearchParameters<PsiElement> {
override fun getProject(): Project {
return runReadAction { ktClass.project }