[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
@@ -155,6 +155,7 @@ class FirDynamicMembersStorage(val session: FirSession) : FirSessionComponent {
val parameter = buildValueParameter {
moduleData = session.moduleData
containingFunctionSymbol = this@buildSimpleFunction.symbol
origin = FirDeclarationOrigin.DynamicScope
returnTypeRef = anyArrayTypeRef
this.name = Name.identifier("args")
@@ -191,12 +191,13 @@ object FirFakeOverrideGenerator {
newContextReceiverTypes: List<ConeKotlinType?>?,
newReturnType: ConeKotlinType?,
fakeOverrideSubstitution: FakeOverrideSubstitution?,
symbolForOverride: FirBasedSymbol<*>,
symbolForOverride: FirFunctionSymbol<*>,
): List<FirTypeParameterRef> {
return when {
baseFunction.typeParameters.isEmpty() -> {
configureAnnotationsAndSignature(
baseFunction,
symbolForOverride,
newParameterTypes,
newReceiverType,
newContextReceiverTypes,
@@ -222,6 +223,7 @@ object FirFakeOverrideGenerator {
}
configureAnnotationsAndSignature(
baseFunction,
symbolForOverride,
copiedParameterTypes,
copiedReceiverType,
copiedContextReceiverTypes,
@@ -233,6 +235,7 @@ object FirFakeOverrideGenerator {
else -> {
configureAnnotationsAndSignature(
baseFunction,
symbolForOverride,
newParameterTypes,
newReceiverType,
newContextReceiverTypes,
@@ -246,6 +249,7 @@ object FirFakeOverrideGenerator {
private fun FirFunctionBuilder.configureAnnotationsAndSignature(
baseFunction: FirFunction,
fakeFunctionSymbol: FirFunctionSymbol<*>,
newParameterTypes: List<ConeKotlinType?>?,
newReceiverType: ConeKotlinType?,
newContextReceiverTypes: List<ConeKotlinType?>?,
@@ -280,6 +284,7 @@ object FirFakeOverrideGenerator {
origin = FirDeclarationOrigin.SubstitutionOverride
returnTypeRef = valueParameter.returnTypeRef.withReplacedConeType(newType)
symbol = FirValueParameterSymbol(valueParameter.name)
containingFunctionSymbol = fakeFunctionSymbol
}.apply {
originalForSubstitutionOverrideAttr = valueParameter
}