[FIR2IR] Extract setting of declaration parent from bindAndDeclareParameters function
Setting parent has nothing in common with declaring parameters
This commit is contained in:
committed by
Space Team
parent
35b3a9ec82
commit
e28f97cf6d
+8
-12
@@ -558,13 +558,11 @@ class Fir2IrDeclarationStorage(
|
|||||||
|
|
||||||
private fun <T : IrFunction> T.bindAndDeclareParameters(
|
private fun <T : IrFunction> T.bindAndDeclareParameters(
|
||||||
function: FirFunction?,
|
function: FirFunction?,
|
||||||
irParent: IrDeclarationParent?,
|
|
||||||
thisReceiverOwner: IrClass?,
|
thisReceiverOwner: IrClass?,
|
||||||
isStatic: Boolean,
|
isStatic: Boolean,
|
||||||
forSetter: Boolean,
|
forSetter: Boolean,
|
||||||
parentPropertyReceiver: FirReceiverParameter? = null
|
parentPropertyReceiver: FirReceiverParameter? = null
|
||||||
): T {
|
): T {
|
||||||
setAndModifyParent(irParent)
|
|
||||||
declareParameters(function, thisReceiverOwner, isStatic, forSetter, parentPropertyReceiver)
|
declareParameters(function, thisReceiverOwner, isStatic, forSetter, parentPropertyReceiver)
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
@@ -709,10 +707,10 @@ class Fir2IrDeclarationStorage(
|
|||||||
).apply {
|
).apply {
|
||||||
metadata = FirMetadataSource.Function(function)
|
metadata = FirMetadataSource.Function(function)
|
||||||
enterScope(this.symbol)
|
enterScope(this.symbol)
|
||||||
|
setAndModifyParent(irParent)
|
||||||
bindAndDeclareParameters(
|
bindAndDeclareParameters(
|
||||||
function, irParent,
|
function, thisReceiverOwner,
|
||||||
thisReceiverOwner, isStatic = simpleFunction?.isStatic == true,
|
isStatic = simpleFunction?.isStatic == true, forSetter = false,
|
||||||
forSetter = false,
|
|
||||||
)
|
)
|
||||||
convertAnnotationsForNonDeclaredMembers(function, origin)
|
convertAnnotationsForNonDeclaredMembers(function, origin)
|
||||||
leaveScope(this.symbol)
|
leaveScope(this.symbol)
|
||||||
@@ -818,7 +816,8 @@ class Fir2IrDeclarationStorage(
|
|||||||
// with the annotation itself.
|
// with the annotation itself.
|
||||||
constructorCache[constructor] = this
|
constructorCache[constructor] = this
|
||||||
enterScope(this.symbol)
|
enterScope(this.symbol)
|
||||||
bindAndDeclareParameters(constructor, irParent, irParent, isStatic = false, forSetter = false)
|
setAndModifyParent(irParent)
|
||||||
|
bindAndDeclareParameters(constructor, irParent, isStatic = false, forSetter = false)
|
||||||
leaveScope(this.symbol)
|
leaveScope(this.symbol)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -914,16 +913,13 @@ class Fir2IrDeclarationStorage(
|
|||||||
firValueParameter = null
|
firValueParameter = null
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
setAndModifyParent(irParent)
|
||||||
bindAndDeclareParameters(
|
bindAndDeclareParameters(
|
||||||
propertyAccessor, irParent,
|
propertyAccessor, thisReceiverOwner,
|
||||||
thisReceiverOwner, isStatic = irParent !is IrClass || propertyAccessor?.isStatic == true,
|
isStatic = irParent !is IrClass || propertyAccessor?.isStatic == true, forSetter = isSetter,
|
||||||
forSetter = isSetter,
|
|
||||||
parentPropertyReceiver = property.receiverParameter,
|
parentPropertyReceiver = property.receiverParameter,
|
||||||
)
|
)
|
||||||
leaveScope(this.symbol)
|
leaveScope(this.symbol)
|
||||||
if (irParent != null) {
|
|
||||||
parent = irParent
|
|
||||||
}
|
|
||||||
if (correspondingProperty is Fir2IrLazyProperty && correspondingProperty.containingClass != null && !isFakeOverride && thisReceiverOwner != null) {
|
if (correspondingProperty is Fir2IrLazyProperty && correspondingProperty.containingClass != null && !isFakeOverride && thisReceiverOwner != null) {
|
||||||
this.overriddenSymbols = correspondingProperty.fir.generateOverriddenAccessorSymbols(
|
this.overriddenSymbols = correspondingProperty.fir.generateOverriddenAccessorSymbols(
|
||||||
correspondingProperty.containingClass, !isSetter
|
correspondingProperty.containingClass, !isSetter
|
||||||
|
|||||||
Reference in New Issue
Block a user