From a713d66b7bfb1a905deecefc96a03b3bb30e6c3d Mon Sep 17 00:00:00 2001 From: Sebastian Sellmair Date: Sun, 14 Jan 2024 01:13:58 +0000 Subject: [PATCH] [ObjCExport] Analysis Api: Ensure KDocs being exported by providing ObjCExportStubOrigin ^KT-64888 Fixed Co-authored-by: Sebastian Sellmair Merge-request: KT-MR-13854 Merged-by: Eugene Levenetc --- ...CStubOrigin.kt => getObjCExportStubOrigin.kt} | 2 +- .../kotlin/objcexport/translateToObjCClass.kt | 2 +- .../objcexport/translateToObjCConstructor.kt | 14 +++++++------- .../kotlin/objcexport/translateToObjCMethod.kt | 3 +-- .../kotlin/objcexport/translateToObjCProperty.kt | 16 ++++++++-------- .../kotlin/objcexport/translateToObjCProtocol.kt | 2 +- 6 files changed, 19 insertions(+), 20 deletions(-) rename native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/{getObjCStubOrigin.kt => getObjCExportStubOrigin.kt} (93%) diff --git a/native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/getObjCStubOrigin.kt b/native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/getObjCExportStubOrigin.kt similarity index 93% rename from native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/getObjCStubOrigin.kt rename to native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/getObjCExportStubOrigin.kt index 22ea7f5d971..a6c8c90daa5 100644 --- a/native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/getObjCStubOrigin.kt +++ b/native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/getObjCExportStubOrigin.kt @@ -12,7 +12,7 @@ import org.jetbrains.kotlin.backend.konan.objcexport.ObjCExportStubOrigin import org.jetbrains.kotlin.objcexport.analysisApiUtils.getKDocString context(KtAnalysisSession) -fun KtSymbol.getObjCStubOrigin(): ObjCExportStubOrigin { +fun KtSymbol.getObjCExportStubOrigin(): ObjCExportStubOrigin { // TODO: Differentiate origins // TODO: Extract kdoc from deserialized symbols return ObjCExportStubOrigin.Source( diff --git a/native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/translateToObjCClass.kt b/native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/translateToObjCClass.kt index 07d81c58f9e..28e2ca461b2 100644 --- a/native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/translateToObjCClass.kt +++ b/native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/translateToObjCClass.kt @@ -25,7 +25,7 @@ fun KtClassOrObjectSymbol.translateToObjCClass(): ObjCClass? { val name = getObjCClassOrProtocolName() val comment: ObjCComment? = annotationsList.translateToObjCComment() - val origin: ObjCExportStubOrigin = getObjCStubOrigin() + val origin: ObjCExportStubOrigin = getObjCExportStubOrigin() val superProtocols: List = superProtocols() val members: List = members().flatMap { it.translateToObjCExportStubs() } val categoryName: String? = null diff --git a/native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/translateToObjCConstructor.kt b/native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/translateToObjCConstructor.kt index 16611dbf4e6..7bfec9a618e 100644 --- a/native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/translateToObjCConstructor.kt +++ b/native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/translateToObjCConstructor.kt @@ -15,13 +15,13 @@ fun KtConstructorSymbol.translateToObjCConstructors(): List { result.add( ObjCMethod( - null, - null, - false, - ObjCInstanceType, - listOf("new"), - emptyList(), - listOf( + comment = null, + origin = getObjCExportStubOrigin(), + isInstanceMethod = false, + returnType = ObjCInstanceType, + selectors = listOf("new"), + parameters = emptyList(), + attributes = listOf( "availability(swift, unavailable, message=\"use object initializers instead\")" ) ) diff --git a/native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/translateToObjCMethod.kt b/native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/translateToObjCMethod.kt index ee7b0b45dd9..f88e623e9c8 100644 --- a/native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/translateToObjCMethod.kt +++ b/native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/translateToObjCMethod.kt @@ -48,7 +48,6 @@ internal fun KtFunctionLikeSymbol.buildObjCMethod( unavailable: Boolean = false, ): ObjCMethod { val bridge = getMethodBridge() - val origin: ObjCExportStubOrigin? = null val returnType: ObjCType = mapReturnType(bridge.returnBridge) val parameters = translateToObjCParameters(bridge) val selector = getSelector(bridge) @@ -82,7 +81,7 @@ internal fun KtFunctionLikeSymbol.buildObjCMethod( return ObjCMethod( comment = comment, - origin = origin, + origin = getObjCExportStubOrigin(), isInstanceMethod = bridge.isInstance || isConstructor, returnType = returnType, selectors = selectors, diff --git a/native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/translateToObjCProperty.kt b/native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/translateToObjCProperty.kt index 688fd113c9d..38f3591e5a4 100644 --- a/native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/translateToObjCProperty.kt +++ b/native/objcexport-header-generator/impl/analysis-api/src/org/jetbrains/kotlin/objcexport/translateToObjCProperty.kt @@ -54,13 +54,13 @@ fun KtPropertySymbol.buildProperty(): ObjCProperty { //declarationAttributes.addIfNotNull(mapper.getDeprecation(property)?.toDeprecationAttribute()) return ObjCProperty( - name, - null, - null, - type!!, - attributes, - setterName, - getterName, - declarationAttributes + name = name, + comment = null, + origin = getObjCExportStubOrigin(), + type = type!!, + propertyAttributes = attributes, + setterName = setterName, + getterName = getterName, + declarationAttributes = declarationAttributes ) } \ No newline at end of file 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 3b04f51b48b..b00fc6fbe72 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 @@ -33,7 +33,7 @@ fun KtClassOrObjectSymbol.translateToObjCProtocol(): ObjCProtocol? { return ObjCProtocolImpl( name = name.objCName, comment = comment, - origin = getObjCStubOrigin(), + origin = getObjCExportStubOrigin(), attributes = name.toNameAttributes(), superProtocols = superProtocols(), members = members