From 13276389d94e82ecab474d0f8f9349e410a5b87d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Doln=C3=ADk?= Date: Fri, 17 May 2024 13:41:50 +0200 Subject: [PATCH] Fix that replaced visibility was not correctly applied to the entire override hierarchy. --- SKIE/acceptance-tests | 2 +- .../annotations/SkieVisibility.kt | 4 +++ .../skie/configuration/SkieVisibility.kt | 4 +++ .../sir/CommitSirIsReplacedPropertyPhase.kt | 28 ++++++++++++++++--- .../element/SirDeclarationWithVisibility.kt | 2 ++ .../sir/element/SirOverridableDeclaration.kt | 1 - 6 files changed, 35 insertions(+), 6 deletions(-) diff --git a/SKIE/acceptance-tests b/SKIE/acceptance-tests index 84a0999f..7c09e892 160000 --- a/SKIE/acceptance-tests +++ b/SKIE/acceptance-tests @@ -1 +1 @@ -Subproject commit 84a0999fe4c921fa28782945319e985c1bc4718d +Subproject commit 7c09e89295634ac0ecb4098bd0fb4ad0328439f0 diff --git a/SKIE/common/configuration/annotations/src/commonMain/kotlin/co/touchlab/skie/configuration/annotations/SkieVisibility.kt b/SKIE/common/configuration/annotations/src/commonMain/kotlin/co/touchlab/skie/configuration/annotations/SkieVisibility.kt index f1000128..8c187fc7 100644 --- a/SKIE/common/configuration/annotations/src/commonMain/kotlin/co/touchlab/skie/configuration/annotations/SkieVisibility.kt +++ b/SKIE/common/configuration/annotations/src/commonMain/kotlin/co/touchlab/skie/configuration/annotations/SkieVisibility.kt @@ -26,6 +26,8 @@ annotation class SkieVisibility { * The declaration will be visible from external modules, but it will be: * - marked as `swift-private` (Xcode will not include it in autocomplete suggestions.), * - renamed in Swift by adding the `__` prefix (Obj-C name remains the same) + * + * The `__` prefix will be added to all overrides of the declaration even if they have different visibility. */ @Retention(AnnotationRetention.BINARY) @Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY) @@ -41,6 +43,8 @@ annotation class SkieVisibility { /** * The declaration will be visible only for declarations within the Kotlin module (including custom Swift code bundled by SKIE). * Additionally, the declaration will be renamed in Swift by adding the `__` prefix (Obj-C name remains the same) + * + * The `__` prefix will be added to all overrides of the declaration even if they have different visibility. */ @Retention(AnnotationRetention.BINARY) @Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY) diff --git a/SKIE/common/configuration/declaration/src/commonMain/kotlin/co/touchlab/skie/configuration/SkieVisibility.kt b/SKIE/common/configuration/declaration/src/commonMain/kotlin/co/touchlab/skie/configuration/SkieVisibility.kt index 921df7df..15e80592 100644 --- a/SKIE/common/configuration/declaration/src/commonMain/kotlin/co/touchlab/skie/configuration/SkieVisibility.kt +++ b/SKIE/common/configuration/declaration/src/commonMain/kotlin/co/touchlab/skie/configuration/SkieVisibility.kt @@ -25,6 +25,8 @@ object SkieVisibility : ConfigurationKey.Enum> : SirCallableDeclaration {