[K2/N] Read KDoc strings from LightTree nodes

^KT-56090

Merge-request: KT-MR-9613
Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com>
This commit is contained in:
Vladimir Sukharev
2023-05-17 08:12:39 +00:00
committed by Space Team
parent 39dfb9958b
commit 6a8981372b
3 changed files with 10 additions and 7 deletions
@@ -5,6 +5,8 @@
package org.jetbrains.kotlin.fir.serialization 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.FirSession
import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.resolve.providers.firProvider 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.symbols.impl.FirClassLikeSymbol
import org.jetbrains.kotlin.fir.types.ConeErrorType import org.jetbrains.kotlin.fir.types.ConeErrorType
import org.jetbrains.kotlin.fir.types.ConeFlexibleType 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.KlibMetadataProtoBuf
import org.jetbrains.kotlin.library.metadata.KlibMetadataSerializerProtocol import org.jetbrains.kotlin.library.metadata.KlibMetadataSerializerProtocol
import org.jetbrains.kotlin.metadata.ProtoBuf import org.jetbrains.kotlin.metadata.ProtoBuf
@@ -96,10 +99,12 @@ class FirKLibSerializerExtension(
} }
} }
private fun FirDeclaration.findKDocString(): String? { private fun FirDeclaration.findKDocString(): String? =
// TODO: KT-56090 source?.let {
return null val kidsRef = Ref<Array<LighterASTNode?>>()
} it.treeStructure.getChildren(it.lighterASTNode, kidsRef)
kidsRef.get().singleOrNull { it?.tokenType == KtTokens.DOC_COMMENT }?.toString()
}
@Suppress("Reformat") @Suppress("Reformat")
private fun < private fun <
@@ -68,7 +68,7 @@ internal fun PhaseContext.firSerializer(
FirKLibSerializerExtension( FirKLibSerializerExtension(
session, metadataVersion, session, metadataVersion,
ConstValueProviderImpl(input.components), ConstValueProviderImpl(input.components),
allowErrorTypes = false, exportKDoc = false allowErrorTypes = false, exportKDoc = shouldExportKDoc()
), ),
configuration.languageVersionSettings, configuration.languageVersionSettings,
) )
@@ -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. * 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. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.