diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/FakeInliningLocalVariablesLowering.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/FakeInliningLocalVariablesLowering.kt index ec64b8c5b0b..aceb791ba04 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/FakeInliningLocalVariablesLowering.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/FakeInliningLocalVariablesLowering.kt @@ -10,6 +10,7 @@ import org.jetbrains.kotlin.backend.common.lower.createIrBuilder import org.jetbrains.kotlin.backend.common.phaser.makeIrFilePhase import org.jetbrains.kotlin.backend.jvm.JvmBackendContext import org.jetbrains.kotlin.backend.jvm.ir.IrInlineReferenceLocator +import org.jetbrains.kotlin.codegen.inline.coroutines.FOR_INLINE_SUFFIX import org.jetbrains.kotlin.ir.builders.createTmpVariable import org.jetbrains.kotlin.ir.builders.irBlockBody import org.jetbrains.kotlin.ir.builders.irInt @@ -61,7 +62,8 @@ internal class FakeInliningLocalVariablesLowering(val context: JvmBackendContext body = irBlockBody { // Create temporary variable, but make sure it's origin is `DEFINED` so that // it will materialize in the code. - createTmpVariable(irInt(0), name, origin = IrDeclarationOrigin.DEFINED) + // Also, do not forget to remove $$forInline suffix, otherwise, IDE will not be able to navigate to inline function. + createTmpVariable(irInt(0), name.removeSuffix(FOR_INLINE_SUFFIX), origin = IrDeclarationOrigin.DEFINED) if (body is IrExpressionBody) { +irReturn((body as IrExpressionBody).expression) } else { diff --git a/compiler/testData/codegen/bytecodeText/inline/inlineSuspendReifiedNoSpilling.kt b/compiler/testData/codegen/bytecodeText/inline/inlineSuspendReifiedNoSpilling.kt index 5ad5f42410d..31ebba96a73 100644 --- a/compiler/testData/codegen/bytecodeText/inline/inlineSuspendReifiedNoSpilling.kt +++ b/compiler/testData/codegen/bytecodeText/inline/inlineSuspendReifiedNoSpilling.kt @@ -1,6 +1,3 @@ -// $$forInline suffix is not needed: KT-36797 -// JVM_IR generates fake inliner variable with suffix $$forInline, when old BE does not do this -// IGNORE_BACKEND: JVM_IR interface ApplicationCall interface AuthenticationService {