From b78f1852998358875d9915ab0d55c8c735f347f6 Mon Sep 17 00:00:00 2001 From: Sebastian Sellmair Date: Thu, 14 Dec 2023 13:13:02 +0100 Subject: [PATCH] [ObjCExport] Remove unnecessary instances in favor of static methods All state will later be stored inside the KtObjCExportSession KT-64226 --- .../{findKdocString.kt => getKDocString.kt} | 2 +- ...Namer.kt => getObjCClassOrProtocolName.kt} | 15 +------------ .../kotlin/objcexport/getObjCPropertyName.kt | 21 +++++++++++++++++++ ...objCStubOrigin.kt => getObjCStubOrigin.kt} | 6 +++--- .../objcexport/translateToObjCProtocol.kt | 2 +- ...KdocStringTest.kt => GetKdocStringTest.kt} | 8 +++---- 6 files changed, 31 insertions(+), 23 deletions(-) rename native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/analysisApiUtils/{findKdocString.kt => getKDocString.kt} (93%) rename native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/{KtObjCExportNamer.kt => getObjCClassOrProtocolName.kt} (64%) create mode 100644 native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/getObjCPropertyName.kt rename native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/{objCStubOrigin.kt => getObjCStubOrigin.kt} (82%) rename native/objcexport-header-generator/impl/analysis-api/test/org/jetbrains/kotlin/objcexport/tests/{FindKdocStringTest.kt => GetKdocStringTest.kt} (90%) diff --git a/native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/analysisApiUtils/findKdocString.kt b/native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/analysisApiUtils/getKDocString.kt similarity index 93% rename from native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/analysisApiUtils/findKdocString.kt rename to native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/analysisApiUtils/getKDocString.kt index 2eca30d1fdd..b827850c9e9 100644 --- a/native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/analysisApiUtils/findKdocString.kt +++ b/native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/analysisApiUtils/getKDocString.kt @@ -9,7 +9,7 @@ import org.jetbrains.kotlin.analysis.api.symbols.KtSymbol import org.jetbrains.kotlin.psi.KtDeclaration import org.jetbrains.kotlin.psi.KtPrimaryConstructor -internal fun KtSymbol.findKDocString(): String? { +internal fun KtSymbol.getKDocString(): String? { val psi = psi if (psi is KtDeclaration) { if (psi is KtPrimaryConstructor) diff --git a/native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/KtObjCExportNamer.kt b/native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/getObjCClassOrProtocolName.kt similarity index 64% rename from native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/KtObjCExportNamer.kt rename to native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/getObjCClassOrProtocolName.kt index 7b62e5cfc6f..c2d00a15f97 100644 --- a/native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/KtObjCExportNamer.kt +++ b/native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/getObjCClassOrProtocolName.kt @@ -7,11 +7,8 @@ package org.jetbrains.kotlin.objcexport import org.jetbrains.kotlin.analysis.api.KtAnalysisSession import org.jetbrains.kotlin.analysis.api.symbols.KtClassLikeSymbol -import org.jetbrains.kotlin.analysis.api.symbols.KtPropertySymbol import org.jetbrains.kotlin.analysis.api.symbols.nameOrAnonymous import org.jetbrains.kotlin.backend.konan.objcexport.ObjCExportClassOrProtocolName -import org.jetbrains.kotlin.backend.konan.objcexport.ObjCExportPropertyName - context(KtAnalysisSession, KtObjCExportSession) fun KtClassLikeSymbol.getObjCClassOrProtocolName(): ObjCExportClassOrProtocolName { @@ -21,14 +18,4 @@ fun KtClassLikeSymbol.getObjCClassOrProtocolName(): ObjCExportClassOrProtocolNam objCName = resolvedObjCNameAnnotation?.objCName ?: nameOrAnonymous.asString(), swiftName = resolvedObjCNameAnnotation?.swiftName ?: nameOrAnonymous.asString() ) -} - -context(KtAnalysisSession, KtObjCExportSession) -fun KtPropertySymbol.getObjCPropertyName(): ObjCExportPropertyName { - val resolveObjCNameAnnotation = resolveObjCNameAnnotation() - - return ObjCExportPropertyName( - objCName = resolveObjCNameAnnotation?.objCName ?: name.asString(), - swiftName = resolveObjCNameAnnotation?.swiftName ?: name.asString() - ) -} +} \ No newline at end of file diff --git a/native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/getObjCPropertyName.kt b/native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/getObjCPropertyName.kt new file mode 100644 index 00000000000..c14c3aecb5d --- /dev/null +++ b/native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/getObjCPropertyName.kt @@ -0,0 +1,21 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.objcexport + +import org.jetbrains.kotlin.analysis.api.KtAnalysisSession +import org.jetbrains.kotlin.analysis.api.symbols.KtPropertySymbol +import org.jetbrains.kotlin.backend.konan.objcexport.ObjCExportPropertyName + + +context(KtAnalysisSession, KtObjCExportSession) +fun KtPropertySymbol.getObjCPropertyName(): ObjCExportPropertyName { + val resolveObjCNameAnnotation = resolveObjCNameAnnotation() + + return ObjCExportPropertyName( + objCName = resolveObjCNameAnnotation?.objCName ?: name.asString(), + swiftName = resolveObjCNameAnnotation?.swiftName ?: name.asString() + ) +} diff --git a/native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/objCStubOrigin.kt b/native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/getObjCStubOrigin.kt similarity index 82% rename from native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/objCStubOrigin.kt rename to native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/getObjCStubOrigin.kt index e3d146c14cd..22ea7f5d971 100644 --- a/native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/objCStubOrigin.kt +++ b/native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/getObjCStubOrigin.kt @@ -9,15 +9,15 @@ import org.jetbrains.kotlin.analysis.api.KtAnalysisSession import org.jetbrains.kotlin.analysis.api.symbols.KtSymbol import org.jetbrains.kotlin.analysis.api.symbols.markers.KtPossiblyNamedSymbol import org.jetbrains.kotlin.backend.konan.objcexport.ObjCExportStubOrigin -import org.jetbrains.kotlin.objcexport.analysisApiUtils.findKDocString +import org.jetbrains.kotlin.objcexport.analysisApiUtils.getKDocString context(KtAnalysisSession) -fun KtSymbol.objCStubOrigin(): ObjCExportStubOrigin { +fun KtSymbol.getObjCStubOrigin(): ObjCExportStubOrigin { // TODO: Differentiate origins // TODO: Extract kdoc from deserialized symbols return ObjCExportStubOrigin.Source( name = let { it as? KtPossiblyNamedSymbol }?.name, psi = psi, - kdoc = findKDocString() + kdoc = getKDocString() ) } diff --git a/native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/translateToObjCProtocol.kt b/native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/translateToObjCProtocol.kt index 0ebe620aac4..e892c9de485 100644 --- a/native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/translateToObjCProtocol.kt +++ b/native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/translateToObjCProtocol.kt @@ -43,7 +43,7 @@ fun KtClassOrObjectSymbol.translateToObjCProtocol(): ObjCProtocol { return ObjCProtocolImpl( name = name.objCName, comment = comment, - origin = this.objCStubOrigin(), + origin = getObjCStubOrigin(), attributes = emptyList(), superProtocols = superProtocols, members = members diff --git a/native/objcexport-header-generator/impl/analysis-api/test/org/jetbrains/kotlin/objcexport/tests/FindKdocStringTest.kt b/native/objcexport-header-generator/impl/analysis-api/test/org/jetbrains/kotlin/objcexport/tests/GetKdocStringTest.kt similarity index 90% rename from native/objcexport-header-generator/impl/analysis-api/test/org/jetbrains/kotlin/objcexport/tests/FindKdocStringTest.kt rename to native/objcexport-header-generator/impl/analysis-api/test/org/jetbrains/kotlin/objcexport/tests/GetKdocStringTest.kt index aa565e8464d..e6ea79c3b14 100644 --- a/native/objcexport-header-generator/impl/analysis-api/test/org/jetbrains/kotlin/objcexport/tests/FindKdocStringTest.kt +++ b/native/objcexport-header-generator/impl/analysis-api/test/org/jetbrains/kotlin/objcexport/tests/GetKdocStringTest.kt @@ -6,14 +6,14 @@ package org.jetbrains.kotlin.objcexport.tests import org.jetbrains.kotlin.analysis.api.analyze -import org.jetbrains.kotlin.objcexport.analysisApiUtils.findKDocString +import org.jetbrains.kotlin.objcexport.analysisApiUtils.getKDocString import org.jetbrains.kotlin.objcexport.testUtils.InlineSourceCodeAnalysis import org.jetbrains.kotlin.objcexport.testUtils.getClassOrFail import org.jetbrains.kotlin.objcexport.testUtils.getFunctionOrFail import org.junit.jupiter.api.Test import kotlin.test.assertEquals -class FindKdocStringTest( +class GetKdocStringTest( private val inlineSourceCodeAnalysis: InlineSourceCodeAnalysis, ) { @Test @@ -35,7 +35,7 @@ class FindKdocStringTest( * Kdoc for 'Foo' */ """.trimIndent(), - foo.findKDocString() + foo.getKDocString() ) } } @@ -59,7 +59,7 @@ class FindKdocStringTest( * Kdoc for 'foo' */ """.trimIndent(), - foo.findKDocString() + foo.getKDocString() ) } }