diff --git a/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/FirKLibSerializerExtension.kt b/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/FirKLibSerializerExtension.kt index ea63b59b338..bd8ef818971 100644 --- a/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/FirKLibSerializerExtension.kt +++ b/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/FirKLibSerializerExtension.kt @@ -5,6 +5,8 @@ package org.jetbrains.kotlin.fir.serialization +import com.intellij.lang.LighterASTNode +import com.intellij.openapi.util.Ref import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.resolve.providers.firProvider @@ -13,6 +15,7 @@ import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirClassLikeSymbol import org.jetbrains.kotlin.fir.types.ConeErrorType import org.jetbrains.kotlin.fir.types.ConeFlexibleType +import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.library.metadata.KlibMetadataProtoBuf import org.jetbrains.kotlin.library.metadata.KlibMetadataSerializerProtocol import org.jetbrains.kotlin.metadata.ProtoBuf @@ -96,10 +99,12 @@ class FirKLibSerializerExtension( } } - private fun FirDeclaration.findKDocString(): String? { - // TODO: KT-56090 - return null - } + private fun FirDeclaration.findKDocString(): String? = + source?.let { + val kidsRef = Ref>() + it.treeStructure.getChildren(it.lighterASTNode, kidsRef) + kidsRef.get().singleOrNull { it?.tokenType == KtTokens.DOC_COMMENT }?.toString() + } @Suppress("Reformat") private fun < diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/FirNativeSerializer.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/FirNativeSerializer.kt index 9de9a0184c1..f027c9aeda4 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/FirNativeSerializer.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/FirNativeSerializer.kt @@ -68,7 +68,7 @@ internal fun PhaseContext.firSerializer( FirKLibSerializerExtension( session, metadataVersion, ConstValueProviderImpl(input.components), - allowErrorTypes = false, exportKDoc = false + allowErrorTypes = false, exportKDoc = shouldExportKDoc() ), configuration.languageVersionSettings, ) diff --git a/native/native.tests/testData/ObjCExport/kdocExport/kdocExport.kt b/native/native.tests/testData/ObjCExport/kdocExport/kdocExport.kt index 6bc96e6a20e..b326833876a 100644 --- a/native/native.tests/testData/ObjCExport/kdocExport/kdocExport.kt +++ b/native/native.tests/testData/ObjCExport/kdocExport/kdocExport.kt @@ -1,5 +1,3 @@ -// KT-56090: [K2/N] Emit DocString klib extensions for ObjCExport -// MUTED_WHEN: K2 /* * 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.