JVM: Remove inplace arguments before state-machine building

#KT-56258 Fixed
This commit is contained in:
Ilmir Usmanov
2023-02-17 14:45:04 +01:00
committed by Space Team
parent 3e99807436
commit 6be734c27e
4 changed files with 38 additions and 0 deletions
@@ -76,6 +76,9 @@ class CoroutineTransformerMethodVisitor(
if (isForNamedFunction) getLastParameterIndex(methodNode.desc, methodNode.access) else 0
)
// If there are in-place argument and call markers around suspend call, they end up in separate
// states of state-machine, leading to AnalyzerError.
InplaceArgumentsMethodTransformer().transform(containingClassInternalName, methodNode)
FixStackMethodTransformer().transform(containingClassInternalName, methodNode)
val suspensionPoints = collectSuspensionPoints(methodNode)
RedundantLocalsEliminationMethodTransformer(suspensionPoints)