From 010c7acc3a688712a7f931aa8a8956bc159551b1 Mon Sep 17 00:00:00 2001 From: Ilmir Usmanov Date: Wed, 1 Mar 2023 16:55:15 +0100 Subject: [PATCH] JVM IR: Restore logic of finding line number for suspend lambda Before c7bc439661805d18e6cc79e6fea9551b9f3b80a3 we did not throw exception when we could not find line number for element. However, on synthetic suspend lambdas we do not have line numbers. If future, when we fix adapted callable references (see KT-55559) there will be more of them. #KT-56910 Fixed --- .../jetbrains/kotlin/backend/jvm/codegen/CoroutineCodegen.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/codegen/CoroutineCodegen.kt b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/codegen/CoroutineCodegen.kt index e6b83b9d168..6807b38228f 100644 --- a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/codegen/CoroutineCodegen.kt +++ b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/codegen/CoroutineCodegen.kt @@ -45,7 +45,7 @@ internal fun MethodNode.acceptWithStateMachine( if (klass.startOffset >= 0) { // if it suspend lambda transformed into class `runSuspend { .... }` irFunction.file.fileEntry.getLineNumber(klass.startOffset) + 1 - } else error("Cannot determine lineNumber of element ${irFunction.render()}") + } else 1 // This lambda might be synthetic } val visitor = CoroutineTransformerMethodVisitor(