Reintroduce change erroneously reverted in 2fec18ffa7

This commit is contained in:
Pavel V. Talanov
2014-12-22 16:01:59 +03:00
parent 69ec789013
commit d33e60b876
@@ -22,12 +22,10 @@ import com.intellij.psi.PsiClass
import com.intellij.psi.search.GlobalSearchScope
import com.intellij.psi.search.searches.DirectClassInheritorsSearch
import com.intellij.util.Processor
import org.jetbrains.jet.lang.psi.JetClassOrObject
import org.jetbrains.jet.plugin.decompiler.navigation.JetSourceNavigationHelper
import org.jetbrains.jet.plugin.stubindex.JetSuperClassIndex
import org.jetbrains.jet.lang.resolve.*
import java.util.Collections
import org.jetbrains.jet.plugin.search.fileScope
import org.jetbrains.jet.plugin.stubindex.JetSourceFilterScope
public open class KotlinDirectInheritorsSearcher() : QueryExecutorBase<PsiClass, DirectClassInheritorsSearch.SearchParameters>(true) {
public override fun processQuery(queryParameters: DirectClassInheritorsSearch.SearchParameters, consumer: Processor<PsiClass>) {
@@ -46,7 +44,8 @@ public open class KotlinDirectInheritorsSearcher() : QueryExecutorBase<PsiClass,
if (scope == null) return
ApplicationManager.getApplication()?.runReadAction {
JetSuperClassIndex.getInstance().get(name, baseClass.getProject(), scope).stream()
val noLibrarySourceScope = JetSourceFilterScope.kotlinSourceAndClassFiles(scope, baseClass.getProject())
JetSuperClassIndex.getInstance().get(name, baseClass.getProject(), noLibrarySourceScope).stream()
.map { candidate -> JetSourceNavigationHelper.getOriginalPsiClassOrCreateLightClass(candidate)}
.filterNotNull()
.filter { candidate -> candidate.isInheritor(baseClass, false) }