[FIR] introduce FirValueParameter.containingFunctionSymbol

^KT-55034 fixed
This commit is contained in:
Ilya Kirillov
2022-07-20 16:01:48 +02:00
parent c8e3103af9
commit 7781ad67d4
39 changed files with 175 additions and 76 deletions
@@ -303,6 +303,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) {
dispatchReceiverType = c.dispatchReceiver
valueParameters += local.memberDeserializer.valueParameters(
listOf(proto.setterValueParameter),
symbol,
proto,
AbstractAnnotationDeserializer.CallableKind.PROPERTY_SETTER,
classProto
@@ -504,6 +505,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) {
typeParameters += local.typeDeserializer.ownTypeParameters.map { it.fir }
valueParameters += local.memberDeserializer.valueParameters(
proto.valueParameterList,
symbol,
proto,
AbstractAnnotationDeserializer.CallableKind.OTHERS,
classProto
@@ -581,6 +583,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) {
.map { buildConstructedClassTypeParameterRef { this.symbol = it.symbol } }
valueParameters += local.memberDeserializer.valueParameters(
proto.valueParameterList,
symbol,
proto,
AbstractAnnotationDeserializer.CallableKind.OTHERS,
classProto,
@@ -607,6 +610,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) {
private fun valueParameters(
valueParameters: List<ProtoBuf.ValueParameter>,
functionSymbol: FirFunctionSymbol<*>,
callableProto: MessageLite,
callableKind: AbstractAnnotationDeserializer.CallableKind,
classProto: ProtoBuf.Class?,
@@ -617,6 +621,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) {
val name = c.nameResolver.getName(proto.name)
buildValueParameter {
moduleData = c.moduleData
this.containingFunctionSymbol = functionSymbol
origin = FirDeclarationOrigin.Library
returnTypeRef = proto.type(c.typeTable).toTypeRef(c)
this.name = name
@@ -328,6 +328,7 @@ private class SyntheticFunctionalInterfaceCache(private val moduleData: FirModul
val parameterName = Name.identifier("p${index + 1}")
buildValueParameter {
moduleData = this@SyntheticFunctionalInterfaceCache.moduleData
containingFunctionSymbol = this@buildSimpleFunction.symbol
origin = FirDeclarationOrigin.BuiltIns
resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES
returnTypeRef = typeArgument