K2: make synthesized functions synthesized in protobuf

Related to KT-59171
This commit is contained in:
Mikhail Glukhikh
2023-07-25 23:04:46 +02:00
committed by Space Team
parent ed2dd4b2ae
commit cdd3f10e99
@@ -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