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