From bef0437edb903ab1f446c6e40e07bb9f2e6e0247 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steven=20Sch=C3=A4fer?= Date: Tue, 18 Aug 2020 18:34:00 +0200 Subject: [PATCH] JVM IR: Generate LVT entries for parameters in inline $default methods --- .../jetbrains/kotlin/backend/jvm/codegen/ExpressionCodegen.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/ExpressionCodegen.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/ExpressionCodegen.kt index b1eb4e17e86..3c28cfcd472 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/ExpressionCodegen.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/ExpressionCodegen.kt @@ -299,7 +299,7 @@ class ExpressionCodegen( } private fun writeParameterInLocalVariableTable(startLabel: Label, endLabel: Label) { - if (irFunction.origin == IrDeclarationOrigin.FUNCTION_FOR_DEFAULT_PARAMETER) return + if (!irFunction.isInline && irFunction.origin == IrDeclarationOrigin.FUNCTION_FOR_DEFAULT_PARAMETER) return if (!irFunction.isStatic) { mv.visitLocalVariable("this", classCodegen.type.descriptor, null, startLabel, endLabel, 0) } @@ -308,6 +308,8 @@ class ExpressionCodegen( writeValueParameterInLocalVariableTable(extensionReceiverParameter, startLabel, endLabel, true) } for (param in irFunction.valueParameters) { + if (param.origin == IrDeclarationOrigin.MASK_FOR_DEFAULT_FUNCTION || param.origin == IrDeclarationOrigin.METHOD_HANDLER_IN_DEFAULT_FUNCTION) + continue writeValueParameterInLocalVariableTable(param, startLabel, endLabel, false) } }