Improve filtering descriptors in DeserializedMemberScope
This commit is contained in:
+9
-3
@@ -106,7 +106,7 @@ public abstract class DeserializedMemberScope protected(
|
|||||||
nameFilter: (Name) -> Boolean): Collection<DeclarationDescriptor> {
|
nameFilter: (Name) -> Boolean): Collection<DeclarationDescriptor> {
|
||||||
val result = LinkedHashSet<DeclarationDescriptor>(0)
|
val result = LinkedHashSet<DeclarationDescriptor>(0)
|
||||||
|
|
||||||
if (kindFilter.acceptsKinds(DescriptorKindFilter.CLASSIFIERS_MASK)) {
|
if (kindFilter.acceptsKinds(DescriptorKindFilter.SINGLETON_CLASSIFIERS_MASK)) {
|
||||||
addEnumEntryDescriptors(result, nameFilter)
|
addEnumEntryDescriptors(result, nameFilter)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -126,11 +126,17 @@ public abstract class DeserializedMemberScope protected(
|
|||||||
kindFilter: DescriptorKindFilter,
|
kindFilter: DescriptorKindFilter,
|
||||||
nameFilter: (Name) -> Boolean
|
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)
|
val names = membersProtos().keySet().filter(nameFilter)
|
||||||
if (kindFilter.acceptsKinds(DescriptorKindFilter.VARIABLES_MASK)) {
|
if (acceptsProperties) {
|
||||||
addMembers(names, result) { getProperties(it) }
|
addMembers(names, result) { getProperties(it) }
|
||||||
}
|
}
|
||||||
if (kindFilter.acceptsKinds(DescriptorKindFilter.FUNCTIONS_MASK)) {
|
if (acceptsFunctions) {
|
||||||
addMembers(names, result) { getFunctions(it) }
|
addMembers(names, result) { getFunctions(it) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user