[FIR] FirCallCompleter: simplify code

^KT-54417
This commit is contained in:
Dmitrii Gridin
2022-11-11 09:24:11 +01:00
committed by Space Team
parent 86422d0944
commit d0a420fad9
@@ -11,6 +11,7 @@ import org.jetbrains.kotlin.fir.*
import org.jetbrains.kotlin.fir.declarations.FirAnonymousFunction import org.jetbrains.kotlin.fir.declarations.FirAnonymousFunction
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirFunction import org.jetbrains.kotlin.fir.declarations.FirFunction
import org.jetbrains.kotlin.fir.declarations.FirReceiverParameter
import org.jetbrains.kotlin.fir.declarations.builder.buildContextReceiver import org.jetbrains.kotlin.fir.declarations.builder.buildContextReceiver
import org.jetbrains.kotlin.fir.declarations.builder.buildReceiverParameterCopy import org.jetbrains.kotlin.fir.declarations.builder.buildReceiverParameterCopy
import org.jetbrains.kotlin.fir.declarations.builder.buildValueParameter import org.jetbrains.kotlin.fir.declarations.builder.buildValueParameter
@@ -44,6 +45,8 @@ import org.jetbrains.kotlin.types.model.StubTypeMarker
import org.jetbrains.kotlin.types.model.TypeVariableMarker import org.jetbrains.kotlin.types.model.TypeVariableMarker
import org.jetbrains.kotlin.types.model.safeSubstitute import org.jetbrains.kotlin.types.model.safeSubstitute
import org.jetbrains.kotlin.utils.addToStdlib.runIf import org.jetbrains.kotlin.utils.addToStdlib.runIf
import kotlin.contracts.InvocationKind
import kotlin.contracts.contract
class FirCallCompleter( class FirCallCompleter(
private val transformer: FirAbstractBodyResolveTransformerDispatcher, private val transformer: FirAbstractBodyResolveTransformerDispatcher,
@@ -306,15 +309,13 @@ class FirCallCompleter(
val expectedReturnTypeRef = expectedReturnType?.let { lambdaArgument.returnTypeRef.resolvedTypeFromPrototype(it) } val expectedReturnTypeRef = expectedReturnType?.let { lambdaArgument.returnTypeRef.resolvedTypeFromPrototype(it) }
lambdaArgument.replaceReceiverParameter( if (receiverType == null) {
lambdaArgument.receiverParameter?.let { receiverParameter -> lambdaArgument.replaceReceiverParameter(null)
receiverType?.approximateLambdaInputType()?.let { approximatedType -> } else {
receiverParameter.apply { lambdaArgument.receiverParameter?.apply {
replaceTypeRef(typeRef.resolvedTypeFromPrototype(approximatedType)) replaceTypeRef(typeRef.resolvedTypeFromPrototype(receiverType.approximateLambdaInputType()))
}
}
} }
) }
if (contextReceivers.isNotEmpty()) { if (contextReceivers.isNotEmpty()) {
lambdaArgument.replaceContextReceivers( lambdaArgument.replaceContextReceivers(