diff --git a/kotlin-native/klib/src/main/kotlin/org/jetbrains/kotlin/cli/klib/SignaturePrinter.kt b/kotlin-native/klib/src/main/kotlin/org/jetbrains/kotlin/cli/klib/SignaturePrinter.kt index e4e62765b36..958a49fe21d 100644 --- a/kotlin-native/klib/src/main/kotlin/org/jetbrains/kotlin/cli/klib/SignaturePrinter.kt +++ b/kotlin-native/klib/src/main/kotlin/org/jetbrains/kotlin/cli/klib/SignaturePrinter.kt @@ -36,11 +36,11 @@ internal class SignaturePrinter( } override fun visitFunctionDescriptor(descriptor: FunctionDescriptor, data: Unit) { - extractSignatureFromDeclaration(descriptor) + extractSignatureFromCallableMember(descriptor) } override fun visitPropertyDescriptor(descriptor: PropertyDescriptor, data: Unit) { - extractSignatureFromDeclaration(descriptor) { + extractSignatureFromCallableMember(descriptor) { descriptor.getter?.let(::extractSignatureFromDeclaration) descriptor.setter?.let(::extractSignatureFromDeclaration) } @@ -54,6 +54,13 @@ internal class SignaturePrinter( extractSignatureFromDeclaration(descriptor) } + private inline fun extractSignatureFromCallableMember(descriptor: CallableMemberDescriptor, continuation: () -> Unit = {}) { + // Skip fake overrides. + if (descriptor.kind == CallableMemberDescriptor.Kind.FAKE_OVERRIDE) return + + extractSignatureFromDeclaration(descriptor, continuation) + } + private inline fun extractSignatureFromDeclaration(descriptor: DeclarationDescriptorWithVisibility, continuation: () -> Unit = {}) { val isPrivate = when (descriptor.visibility) { DescriptorVisibilities.PUBLIC, @@ -70,3 +77,4 @@ internal class SignaturePrinter( } } } +