Refactored filtering by descriptor kind so that no knowledge about SAM-constructors required in core

This commit is contained in:
Valentin Kipyatkov
2014-11-11 23:21:49 +03:00
parent 6711567d9a
commit 95b3885aa5
43 changed files with 215 additions and 200 deletions
@@ -25,8 +25,8 @@ public class CombinedPackageMemberDeclarationProvider(val providers: Collection<
override fun getPackageFiles() = providers.flatMap { it.getPackageFiles() }
override fun getDeclarations(kindFilterMask: Int, nameFilter: (Name) -> Boolean)
= providers.flatMap { it.getDeclarations(kindFilterMask, nameFilter) }
override fun getDeclarations(kindFilter: JetScope.KindFilter, nameFilter: (Name) -> Boolean)
= providers.flatMap { it.getDeclarations(kindFilter, nameFilter) }
override fun getFunctionDeclarations(name: Name) = providers.flatMap { it.getFunctionDeclarations(name) }
@@ -39,18 +39,18 @@ public class StubBasedPackageMemberDeclarationProvider(
private val searchScope: GlobalSearchScope
) : PackageMemberDeclarationProvider {
override fun getDeclarations(kindFilterMask: Int, nameFilter: (Name) -> Boolean): List<JetDeclaration> {
override fun getDeclarations(kindFilter: JetScope.KindFilter, nameFilter: (Name) -> Boolean): List<JetDeclaration> {
val result = ArrayList<JetDeclaration>()
if (kindFilterMask and (JetScope.TYPE or JetScope.OBJECT) != 0) {
if (kindFilter.acceptsKind(JetScope.CLASSIFIERS_MASK)) {
result.addDeclarations(JetFullClassNameIndex.getInstance(), nameFilter)
}
if (kindFilterMask and JetScope.FUNCTIONS_MASK != 0) {
if (kindFilter.acceptsKind(JetScope.FUNCTION)) {
result.addDeclarations(JetTopLevelFunctionsFqnNameIndex.getInstance(), nameFilter)
}
if (kindFilterMask and JetScope.PROPERTIES_MASK != 0) {
if (kindFilter.acceptsKind(JetScope.VARIABLE)) {
result.addDeclarations(JetTopLevelPropertiesFqnNameIndex.getInstance(), nameFilter)
}