JVM IR: Fix types of temporaries in AddContinuationLowering
This commit is contained in:
committed by
Georgy Bronnikov
parent
30166b20b7
commit
edd0ac6c6f
+2
-2
@@ -269,7 +269,7 @@ private class AddContinuationLowering(private val context: JvmBackendContext) :
|
|||||||
createCall.putValueArgument(0, irGet(function.valueParameters[0]))
|
createCall.putValueArgument(0, irGet(function.valueParameters[0]))
|
||||||
}
|
}
|
||||||
createCall.putValueArgument(if (receiverField != null) 1 else 0, irGet(function.valueParameters.last()))
|
createCall.putValueArgument(if (receiverField != null) 1 else 0, irGet(function.valueParameters.last()))
|
||||||
}, "create")
|
}, "create", irType = defaultType)
|
||||||
// Start coroutine
|
// Start coroutine
|
||||||
+irReturn(irCall(invokeSuspend).also { invokeSuspendCall ->
|
+irReturn(irCall(invokeSuspend).also { invokeSuspendCall ->
|
||||||
invokeSuspendCall.dispatchReceiver = irGet(newlyCreatedObject)
|
invokeSuspendCall.dispatchReceiver = irGet(newlyCreatedObject)
|
||||||
@@ -306,7 +306,7 @@ private class AddContinuationLowering(private val context: JvmBackendContext) :
|
|||||||
constructorCall.putValueArgument(index, irGetField(irGet(function.dispatchReceiverParameter!!), field))
|
constructorCall.putValueArgument(index, irGetField(irGet(function.dispatchReceiverParameter!!), field))
|
||||||
}
|
}
|
||||||
constructorCall.putValueArgument(parametersWithArguments.size, irGet(function.valueParameters.last()))
|
constructorCall.putValueArgument(parametersWithArguments.size, irGet(function.valueParameters.last()))
|
||||||
}, "constructor")
|
}, "constructor", irType = defaultType)
|
||||||
// Move parameters into fields (instead of `create`)
|
// Move parameters into fields (instead of `create`)
|
||||||
if (parametersWithoutArguments.isNotEmpty()) {
|
if (parametersWithoutArguments.isNotEmpty()) {
|
||||||
for ((index, param) in function.valueParameters.dropLast(1).withIndex()) {
|
for ((index, param) in function.valueParameters.dropLast(1).withIndex()) {
|
||||||
|
|||||||
Reference in New Issue
Block a user