From cdd3f10e994ca9b39ecc91312fbf4296b169f487 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Tue, 25 Jul 2023 23:04:46 +0200 Subject: [PATCH] K2: make synthesized functions synthesized in protobuf Related to KT-59171 --- .../kotlin/fir/serialization/FirElementSerializer.kt | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/FirElementSerializer.kt b/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/FirElementSerializer.kt index a005b33d5a0..1551ed3dc25 100644 --- a/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/FirElementSerializer.kt +++ b/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/FirElementSerializer.kt @@ -46,6 +46,7 @@ import org.jetbrains.kotlin.fir.types.builder.buildResolvedTypeRef import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl import org.jetbrains.kotlin.fir.types.impl.FirImplicitNullableAnyTypeRef import org.jetbrains.kotlin.metadata.ProtoBuf +import org.jetbrains.kotlin.metadata.ProtoBuf.MemberKind import org.jetbrains.kotlin.metadata.deserialization.Flags import org.jetbrains.kotlin.metadata.deserialization.VersionRequirement import org.jetbrains.kotlin.metadata.deserialization.isKotlin1Dot4OrLater @@ -507,7 +508,7 @@ class FirElementSerializer private constructor( function.nonSourceAnnotations(session).isNotEmpty() || extension.hasAdditionalAnnotations(function), ProtoEnumFlags.visibility(simpleFunction?.let { normalizeVisibility(it) } ?: Visibilities.Local), ProtoEnumFlags.modality(simpleFunction?.modality ?: Modality.FINAL), - if (function.origin == FirDeclarationOrigin.Delegated) ProtoBuf.MemberKind.DELEGATION else ProtoBuf.MemberKind.DECLARATION, + function.memberKind(), simpleFunction?.isOperator == true, simpleFunction?.isInfix == true, simpleFunction?.isInline == true, @@ -594,6 +595,14 @@ class FirElementSerializer private constructor( return builder } + private fun FirFunction.memberKind(): MemberKind { + return when (origin) { + FirDeclarationOrigin.Delegated -> MemberKind.DELEGATION + FirDeclarationOrigin.Synthetic -> MemberKind.SYNTHESIZED + else -> MemberKind.DECLARATION + } + } + private fun shouldSetStableParameterNames(function: FirFunction?): Boolean { return when { function?.hasStableParameterNames == true -> true