JVM IR: Generate LVT entries for parameters in inline $default methods

This commit is contained in:
Steven Schäfer
2020-08-18 18:34:00 +02:00
committed by max-kammerer
parent 347a984ce0
commit bef0437edb
@@ -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)
}
}