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 cf1f41309c0..ee14a1a3ed7 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 @@ -252,7 +252,9 @@ class ExpressionCodegen( writeValueParameterInLocalVariableTable(extensionReceiverParameter, startLabel, endLabel, true) } for (param in irFunction.valueParameters) { - writeValueParameterInLocalVariableTable(param, startLabel, endLabel, false) + if (!param.origin.isSynthetic) { + writeValueParameterInLocalVariableTable(param, startLabel, endLabel, false) + } } } diff --git a/compiler/testData/codegen/bytecodeText/defaultArguments/noSyntheticParameters.kt b/compiler/testData/codegen/bytecodeText/defaultArguments/noSyntheticParameters.kt new file mode 100644 index 00000000000..2de1db5693b --- /dev/null +++ b/compiler/testData/codegen/bytecodeText/defaultArguments/noSyntheticParameters.kt @@ -0,0 +1,15 @@ +// FILE: Foo.kt + +fun foo(param: String = "123") {} + + +//TODO: align backends + +// JVM_TEMPLATES +// 1 LOCALVARIABLE param +// 1 LOCALVARIABLE + +// JVM_IR_TEMPLATES +// 2 LOCALVARIABLE param +// 2 LOCALVARIABLE + diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/BytecodeTextTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/BytecodeTextTestGenerated.java index 70c0ffb9860..61073a818cf 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/BytecodeTextTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/BytecodeTextTestGenerated.java @@ -1584,6 +1584,11 @@ public class BytecodeTextTestGenerated extends AbstractBytecodeTextTest { public void testNoEmptyArray() throws Exception { runTest("compiler/testData/codegen/bytecodeText/defaultArguments/noEmptyArray.kt"); } + + @TestMetadata("noSyntheticParameters.kt") + public void testNoSyntheticParameters() throws Exception { + runTest("compiler/testData/codegen/bytecodeText/defaultArguments/noSyntheticParameters.kt"); + } } @TestMetadata("compiler/testData/codegen/bytecodeText/directInvoke") diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBytecodeTextTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBytecodeTextTestGenerated.java index 028f19ebde2..592aa87a8c7 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBytecodeTextTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBytecodeTextTestGenerated.java @@ -1539,6 +1539,11 @@ public class IrBytecodeTextTestGenerated extends AbstractIrBytecodeTextTest { public void testNoEmptyArray() throws Exception { runTest("compiler/testData/codegen/bytecodeText/defaultArguments/noEmptyArray.kt"); } + + @TestMetadata("noSyntheticParameters.kt") + public void testNoSyntheticParameters() throws Exception { + runTest("compiler/testData/codegen/bytecodeText/defaultArguments/noSyntheticParameters.kt"); + } } @TestMetadata("compiler/testData/codegen/bytecodeText/directInvoke")