DeclarationProvider.getAllDeclarations() -> getDeclarations(kindFilter, nameFilter)

This commit is contained in:
Valentin Kipyatkov
2014-10-31 21:51:20 +03:00
parent 169b082fff
commit c7ba03f76a
5 changed files with 34 additions and 13 deletions
@@ -18,13 +18,16 @@ package org.jetbrains.jet.plugin.stubindex.resolve
import org.jetbrains.jet.lang.resolve.lazy.declarations.PackageMemberDeclarationProvider
import org.jetbrains.jet.lang.resolve.name.Name
import org.jetbrains.jet.lang.resolve.scopes.JetScope
import org.jetbrains.jet.lang.resolve.scopes.JetScope.DescriptorKind
public class CombinedPackageMemberDeclarationProvider(val providers: Collection<PackageMemberDeclarationProvider>) : PackageMemberDeclarationProvider {
override fun getAllDeclaredSubPackages() = providers.flatMap { it.getAllDeclaredSubPackages() }
override fun getPackageFiles() = providers.flatMap { it.getPackageFiles() }
override fun getAllDeclarations() = providers.flatMap { it.getAllDeclarations() }
override fun getDeclarations(kindFilter: (JetScope.DescriptorKind) -> Boolean, nameFilter: (Name) -> Boolean)
= providers.flatMap { it.getDeclarations(kindFilter, nameFilter) }
override fun getFunctionDeclarations(name: Name) = providers.flatMap { it.getFunctionDeclarations(name) }
@@ -30,6 +30,7 @@ import org.jetbrains.jet.plugin.stubindex.PackageIndexUtil
import org.jetbrains.jet.lang.resolve.lazy.data.JetClassLikeInfo
import org.jetbrains.jet.lang.resolve.lazy.data.JetClassInfoUtil
import org.jetbrains.jet.lang.resolve.lazy.ResolveSessionUtils
import org.jetbrains.jet.lang.resolve.scopes.JetScope
public class StubBasedPackageMemberDeclarationProvider(
private val fqName: FqName,
@@ -37,9 +38,8 @@ public class StubBasedPackageMemberDeclarationProvider(
private val searchScope: GlobalSearchScope
) : PackageMemberDeclarationProvider {
override fun getAllDeclarations(): List<JetDeclaration> {
return TOP_LEVEL_DECLARATION_INDICES.flatMap {
index ->
override fun getDeclarations(kindFilter: (JetScope.DescriptorKind) -> Boolean, nameFilter: (Name) -> Boolean): List<JetDeclaration> {
return TOP_LEVEL_DECLARATION_INDICES.flatMap { index ->
val fqNames = index.getAllKeys(project).toSet().map { FqName(it) }.filter { !it.isRoot() && it.parent() == fqName }
fqNames.flatMap { index.get(it.asString(), project, searchScope) }
}