[FIR2IR] Minor. Cleanup Fir2IrVisitor.convertToIrReceiverExpression
This commit is contained in:
committed by
Space Team
parent
5b01396a11
commit
62e9c944fe
@@ -937,30 +937,35 @@ class Fir2IrVisitor(
|
|||||||
selector: FirQualifiedAccessExpression,
|
selector: FirQualifiedAccessExpression,
|
||||||
): IrExpression? {
|
): IrExpression? {
|
||||||
val selectorCalleeReference = selector.calleeReference
|
val selectorCalleeReference = selector.calleeReference
|
||||||
return when (receiver) {
|
val irReceiver = when (receiver) {
|
||||||
null -> return null
|
null -> return null
|
||||||
is FirResolvedQualifier -> callGenerator.convertToGetObject(receiver, selector as? FirCallableReferenceAccess)
|
is FirResolvedQualifier -> callGenerator.convertToGetObject(receiver, selector as? FirCallableReferenceAccess)
|
||||||
is FirFunctionCall, is FirThisReceiverExpression, is FirCallableReferenceAccess, is FirSmartCastExpression ->
|
is FirFunctionCall,
|
||||||
convertToIrExpression(receiver)
|
is FirThisReceiverExpression,
|
||||||
else -> if (receiver is FirQualifiedAccessExpression && receiver.explicitReceiver == null) {
|
is FirCallableReferenceAccess,
|
||||||
val variableAsFunctionMode = selectorCalleeReference is FirResolvedNamedReference &&
|
is FirSmartCastExpression -> convertToIrExpression(receiver)
|
||||||
selectorCalleeReference.name != OperatorNameConventions.INVOKE &&
|
|
||||||
(selectorCalleeReference.resolvedSymbol as? FirCallableSymbol)?.callableId?.callableName == OperatorNameConventions.INVOKE
|
|
||||||
callGenerator.convertToIrCall(
|
|
||||||
receiver, receiver.resolvedType, explicitReceiverExpression = null,
|
|
||||||
variableAsFunctionMode = variableAsFunctionMode
|
|
||||||
)
|
|
||||||
} else {
|
|
||||||
convertToIrExpression(receiver)
|
|
||||||
}
|
|
||||||
}?.run {
|
|
||||||
if (receiver is FirQualifiedAccessExpression && receiver.calleeReference is FirSuperReference) return@run this
|
|
||||||
|
|
||||||
implicitCastInserter.implicitCastFromReceivers(
|
is FirQualifiedAccessExpression -> when (receiver.explicitReceiver) {
|
||||||
this, receiver, selector,
|
null -> {
|
||||||
conversionScope.defaultConversionTypeOrigin()
|
val variableAsFunctionMode = selectorCalleeReference is FirResolvedNamedReference &&
|
||||||
)
|
selectorCalleeReference.name != OperatorNameConventions.INVOKE &&
|
||||||
}
|
(selectorCalleeReference.resolvedSymbol as? FirCallableSymbol)?.callableId?.callableName == OperatorNameConventions.INVOKE
|
||||||
|
callGenerator.convertToIrCall(
|
||||||
|
receiver, receiver.resolvedType, explicitReceiverExpression = null,
|
||||||
|
variableAsFunctionMode = variableAsFunctionMode
|
||||||
|
)
|
||||||
|
}
|
||||||
|
else -> convertToIrExpression(receiver)
|
||||||
|
}
|
||||||
|
else -> convertToIrExpression(receiver)
|
||||||
|
} ?: return null
|
||||||
|
|
||||||
|
if (receiver is FirQualifiedAccessExpression && receiver.calleeReference is FirSuperReference) return irReceiver
|
||||||
|
|
||||||
|
return implicitCastInserter.implicitCastFromReceivers(
|
||||||
|
irReceiver, receiver, selector,
|
||||||
|
conversionScope.defaultConversionTypeOrigin()
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun List<FirStatement>.mapToIrStatements(recognizePostfixIncDec: Boolean = true): List<IrStatement?> {
|
private fun List<FirStatement>.mapToIrStatements(recognizePostfixIncDec: Boolean = true): List<IrStatement?> {
|
||||||
|
|||||||
Reference in New Issue
Block a user