From f4f609bea74ae20982e4e56867dd4e93efcb2799 Mon Sep 17 00:00:00 2001 From: Dmitriy Dolovov Date: Mon, 19 Feb 2024 22:52:31 +0100 Subject: [PATCH] [KLIB tool] "dump-metadata-signatures": exclude private declarations Don't print signatures computed for private declarations. This effectively means that only signatures for `public`, `protected`, and `internal` declarations will be printed. Note: This new behavior is intact with `dump-ir-signatures` command. ^KT-62340 --- .../org/jetbrains/kotlin/cli/klib/SignaturePrinter.kt | 10 ++++++++++ 1 file changed, 10 insertions(+) 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 6fb52bc3161..e4e62765b36 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 @@ -55,6 +55,16 @@ internal class SignaturePrinter( } private inline fun extractSignatureFromDeclaration(descriptor: DeclarationDescriptorWithVisibility, continuation: () -> Unit = {}) { + val isPrivate = when (descriptor.visibility) { + DescriptorVisibilities.PUBLIC, + DescriptorVisibilities.PROTECTED, + DescriptorVisibilities.INTERNAL -> false + else -> true + } + + // Skip private declarations. + if (isPrivate) return + signatures.addIfNotNull(signatureRenderer.render(descriptor)) continuation() }