[FIR] FirCallCompleter: simplify code
^KT-54417
This commit is contained in:
committed by
Space Team
parent
86422d0944
commit
d0a420fad9
+9
-8
@@ -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(
|
||||||
|
|||||||
Reference in New Issue
Block a user