From a8bd7caed1b53329d9ad8b9423512df17ea45a3a Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Sat, 1 Nov 2014 12:59:34 +0300 Subject: [PATCH] Added filtering in subpackages scope --- .../jet/lang/descriptors/impl/SubpackagesScope.kt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/core/descriptors/src/org/jetbrains/jet/lang/descriptors/impl/SubpackagesScope.kt b/core/descriptors/src/org/jetbrains/jet/lang/descriptors/impl/SubpackagesScope.kt index 0f844752512..bc9c793eed3 100644 --- a/core/descriptors/src/org/jetbrains/jet/lang/descriptors/impl/SubpackagesScope.kt +++ b/core/descriptors/src/org/jetbrains/jet/lang/descriptors/impl/SubpackagesScope.kt @@ -24,7 +24,6 @@ import org.jetbrains.jet.utils.* import java.util.ArrayList import org.jetbrains.jet.lang.resolve.scopes.JetScope -import org.jetbrains.jet.lang.resolve.scopes.JetScope.DescriptorKind public class SubpackagesScope(private val containingDeclaration: PackageViewDescriptor) : JetScopeImpl() { override fun getContainingDeclaration(): DeclarationDescriptor { @@ -37,10 +36,15 @@ public class SubpackagesScope(private val containingDeclaration: PackageViewDesc override fun getDescriptors(kindFilter: (JetScope.DescriptorKind) -> Boolean, nameFilter: (Name) -> Boolean): Collection { + if (!kindFilter(JetScope.DescriptorKind.PACKAGE)) return listOf() + val subFqNames = containingDeclaration.getModule().getPackageFragmentProvider().getSubPackagesOf(containingDeclaration.getFqName(), nameFilter) val result = ArrayList(subFqNames.size()) for (subFqName in subFqNames) { - result.addIfNotNull(getPackage(subFqName.shortName())) + val shortName = subFqName.shortName() + if (nameFilter(shortName)) { + result.addIfNotNull(getPackage(shortName)) + } } return result }