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 }