From 2d4d1caf1716e9c584ef579421d88a2ec598eff6 Mon Sep 17 00:00:00 2001 From: "Pavel V. Talanov" Date: Thu, 13 Nov 2014 17:16:03 +0300 Subject: [PATCH] Improve filtering descriptors in DeserializedMemberScope --- .../descriptors/DeserializedMemberScope.kt | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/core/serialization/src/org/jetbrains/jet/descriptors/serialization/descriptors/DeserializedMemberScope.kt b/core/serialization/src/org/jetbrains/jet/descriptors/serialization/descriptors/DeserializedMemberScope.kt index 3825aa84bae..c27d8e2d505 100644 --- a/core/serialization/src/org/jetbrains/jet/descriptors/serialization/descriptors/DeserializedMemberScope.kt +++ b/core/serialization/src/org/jetbrains/jet/descriptors/serialization/descriptors/DeserializedMemberScope.kt @@ -106,7 +106,7 @@ public abstract class DeserializedMemberScope protected( nameFilter: (Name) -> Boolean): Collection { val result = LinkedHashSet(0) - if (kindFilter.acceptsKinds(DescriptorKindFilter.CLASSIFIERS_MASK)) { + if (kindFilter.acceptsKinds(DescriptorKindFilter.SINGLETON_CLASSIFIERS_MASK)) { addEnumEntryDescriptors(result, nameFilter) } @@ -126,11 +126,17 @@ public abstract class DeserializedMemberScope protected( kindFilter: DescriptorKindFilter, nameFilter: (Name) -> Boolean ) { + val acceptsProperties = kindFilter.acceptsKinds(DescriptorKindFilter.VARIABLES_MASK) + val acceptsFunctions = kindFilter.acceptsKinds(DescriptorKindFilter.FUNCTIONS_MASK) + if (!(acceptsFunctions || acceptsProperties)) { + return + } + val names = membersProtos().keySet().filter(nameFilter) - if (kindFilter.acceptsKinds(DescriptorKindFilter.VARIABLES_MASK)) { + if (acceptsProperties) { addMembers(names, result) { getProperties(it) } } - if (kindFilter.acceptsKinds(DescriptorKindFilter.FUNCTIONS_MASK)) { + if (acceptsFunctions) { addMembers(names, result) { getFunctions(it) } } }