Deserialized scope descriptor order synced with serialization order
That introduces implicit dependency of deserialization on MemberComparator
This commit is contained in:
+5
-1
@@ -241,7 +241,11 @@ public class DeserializedClassDescriptor(outerContext: DeserializationContext, p
|
||||
classDescriptor.enumEntries.findEnumEntry(name) ?: classDescriptor.nestedClasses.findNestedClass(name)
|
||||
|
||||
override fun addClassDescriptors(result: MutableCollection<DeclarationDescriptor>, nameFilter: (Name) -> Boolean) {
|
||||
result.addAll(classDescriptor.nestedClasses.all() + classDescriptor.enumEntries.all())
|
||||
result.addAll(classDescriptor.nestedClasses.all())
|
||||
}
|
||||
|
||||
override fun addEnumEntryDescriptors(result: MutableCollection<DeclarationDescriptor>, nameFilter: (Name) -> Boolean) {
|
||||
result.addAll(classDescriptor.enumEntries.all())
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+12
-9
@@ -106,15 +106,16 @@ public abstract class DeserializedMemberScope protected(
|
||||
nameFilter: (Name) -> Boolean): Collection<DeclarationDescriptor> {
|
||||
val result = LinkedHashSet<DeclarationDescriptor>(0)
|
||||
|
||||
for (name in membersProtos().keySet()) {
|
||||
if (nameFilter(name)) {
|
||||
if (kindFilter.acceptsKinds(DescriptorKindFilter.FUNCTIONS_MASK)) {
|
||||
result.addAll(getFunctions(name))
|
||||
}
|
||||
if (kindFilter.acceptsKinds(DescriptorKindFilter.VARIABLES_MASK)) {
|
||||
result.addAll(getProperties(name))
|
||||
}
|
||||
}
|
||||
if (kindFilter.acceptsKinds(DescriptorKindFilter.CLASSIFIERS_MASK)) {
|
||||
addEnumEntryDescriptors(result, nameFilter)
|
||||
}
|
||||
|
||||
val names = membersProtos().keySet().filter(nameFilter)
|
||||
if (kindFilter.acceptsKinds(DescriptorKindFilter.VARIABLES_MASK)) {
|
||||
names.forEach { result.addAll(getProperties(it)) }
|
||||
}
|
||||
if (kindFilter.acceptsKinds(DescriptorKindFilter.FUNCTIONS_MASK)) {
|
||||
names.forEach { result.addAll(getFunctions(it)) }
|
||||
}
|
||||
|
||||
addNonDeclaredDescriptors(result)
|
||||
@@ -128,6 +129,8 @@ public abstract class DeserializedMemberScope protected(
|
||||
|
||||
protected abstract fun addNonDeclaredDescriptors(result: MutableCollection<DeclarationDescriptor>)
|
||||
|
||||
protected abstract fun addEnumEntryDescriptors(result: MutableCollection<DeclarationDescriptor>, nameFilter: (Name) -> Boolean)
|
||||
|
||||
override fun getImplicitReceiversHierarchy(): List<ReceiverParameterDescriptor> {
|
||||
val receiver = getImplicitReceiver()
|
||||
return if (receiver != null) listOf(receiver) else listOf()
|
||||
|
||||
+4
@@ -61,5 +61,9 @@ public open class DeserializedPackageMemberScope(
|
||||
// Do nothing
|
||||
}
|
||||
|
||||
override fun addEnumEntryDescriptors(result: MutableCollection<DeclarationDescriptor>, nameFilter: (Name) -> Boolean) {
|
||||
// Do nothing
|
||||
}
|
||||
|
||||
override fun getImplicitReceiver(): ReceiverParameterDescriptor? = null
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user