K2: make synthesized functions synthesized in protobuf
Related to KT-59171
This commit is contained in:
committed by
Space Team
parent
ed2dd4b2ae
commit
cdd3f10e99
+10
-1
@@ -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.ConeClassLikeTypeImpl
|
||||||
import org.jetbrains.kotlin.fir.types.impl.FirImplicitNullableAnyTypeRef
|
import org.jetbrains.kotlin.fir.types.impl.FirImplicitNullableAnyTypeRef
|
||||||
import org.jetbrains.kotlin.metadata.ProtoBuf
|
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.Flags
|
||||||
import org.jetbrains.kotlin.metadata.deserialization.VersionRequirement
|
import org.jetbrains.kotlin.metadata.deserialization.VersionRequirement
|
||||||
import org.jetbrains.kotlin.metadata.deserialization.isKotlin1Dot4OrLater
|
import org.jetbrains.kotlin.metadata.deserialization.isKotlin1Dot4OrLater
|
||||||
@@ -507,7 +508,7 @@ class FirElementSerializer private constructor(
|
|||||||
function.nonSourceAnnotations(session).isNotEmpty() || extension.hasAdditionalAnnotations(function),
|
function.nonSourceAnnotations(session).isNotEmpty() || extension.hasAdditionalAnnotations(function),
|
||||||
ProtoEnumFlags.visibility(simpleFunction?.let { normalizeVisibility(it) } ?: Visibilities.Local),
|
ProtoEnumFlags.visibility(simpleFunction?.let { normalizeVisibility(it) } ?: Visibilities.Local),
|
||||||
ProtoEnumFlags.modality(simpleFunction?.modality ?: Modality.FINAL),
|
ProtoEnumFlags.modality(simpleFunction?.modality ?: Modality.FINAL),
|
||||||
if (function.origin == FirDeclarationOrigin.Delegated) ProtoBuf.MemberKind.DELEGATION else ProtoBuf.MemberKind.DECLARATION,
|
function.memberKind(),
|
||||||
simpleFunction?.isOperator == true,
|
simpleFunction?.isOperator == true,
|
||||||
simpleFunction?.isInfix == true,
|
simpleFunction?.isInfix == true,
|
||||||
simpleFunction?.isInline == true,
|
simpleFunction?.isInline == true,
|
||||||
@@ -594,6 +595,14 @@ class FirElementSerializer private constructor(
|
|||||||
return builder
|
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 {
|
private fun shouldSetStableParameterNames(function: FirFunction?): Boolean {
|
||||||
return when {
|
return when {
|
||||||
function?.hasStableParameterNames == true -> true
|
function?.hasStableParameterNames == true -> true
|
||||||
|
|||||||
Reference in New Issue
Block a user