KT-53957 Fix indy lambdas with extension and context receivers (#5021)
This commit is contained in:
+7
-1
@@ -446,13 +446,19 @@ internal class LambdaMetafactoryArgumentsBuilder(
|
||||
val oldToNew = HashMap<IrValueParameter, IrValueParameter>()
|
||||
var newParameterIndex = 0
|
||||
|
||||
lambda.valueParameters.take(lambda.contextReceiverParametersCount).mapTo(newValueParameters) { oldParameter ->
|
||||
oldParameter.copy(lambda, newParameterIndex++).also {
|
||||
oldToNew[oldParameter] = it
|
||||
}
|
||||
}
|
||||
|
||||
newValueParameters.add(
|
||||
oldExtensionReceiver.copy(lambda, newParameterIndex++, oldExtensionReceiver.name).also {
|
||||
oldToNew[oldExtensionReceiver] = it
|
||||
}
|
||||
)
|
||||
|
||||
lambda.valueParameters.mapTo(newValueParameters) { oldParameter ->
|
||||
lambda.valueParameters.drop(lambda.contextReceiverParametersCount).mapTo(newValueParameters) { oldParameter ->
|
||||
oldParameter.copy(lambda, newParameterIndex++).also {
|
||||
oldToNew[oldParameter] = it
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user