Do not sort fake overrides in DescriptorSerializer
Sorting invokes descriptor renderer, so the fewer descriptors we are sorting, the better. This helps to save a few percent of compilation time in a synthetic project from KT-52326.
This commit is contained in:
@@ -99,6 +99,8 @@ class JavaClassesSerializerExtension : KotlinSerializerExtensionBase(BuiltInSeri
|
||||
}
|
||||
|
||||
private fun MemberScope.getSortedCallableDescriptors(): Collection<CallableMemberDescriptor> =
|
||||
DescriptorUtils.getAllDescriptors(this).filterIsInstance<CallableMemberDescriptor>()
|
||||
.let { DescriptorSerializer.sort(it) }
|
||||
DescriptorUtils.getAllDescriptors(this)
|
||||
.filterIsInstance<CallableMemberDescriptor>()
|
||||
.filter { it.kind != CallableMemberDescriptor.Kind.FAKE_OVERRIDE }
|
||||
.let { DescriptorSerializer.sort(it) }
|
||||
}
|
||||
|
||||
+1
-2
@@ -135,11 +135,10 @@ class DescriptorSerializer private constructor(
|
||||
?: sort(
|
||||
DescriptorUtils.getAllDescriptors(classDescriptor.defaultType.memberScope)
|
||||
.filterIsInstance<CallableMemberDescriptor>()
|
||||
.filter { it.kind != CallableMemberDescriptor.Kind.FAKE_OVERRIDE }
|
||||
)
|
||||
|
||||
for (descriptor in callableMembers) {
|
||||
if (descriptor.kind == CallableMemberDescriptor.Kind.FAKE_OVERRIDE) continue
|
||||
|
||||
when (descriptor) {
|
||||
is PropertyDescriptor -> propertyProto(descriptor)?.let { builder.addProperty(it) }
|
||||
is FunctionDescriptor -> functionProto(descriptor)?.let { builder.addFunction(it) }
|
||||
|
||||
Reference in New Issue
Block a user