diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/DefaultParameterValueSubstitutor.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/DefaultParameterValueSubstitutor.kt index fe389cbb6b9..6f8f27964ac 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/DefaultParameterValueSubstitutor.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/DefaultParameterValueSubstitutor.kt @@ -240,7 +240,7 @@ class DefaultParameterValueSubstitutor(val state: GenerationState) { private fun getRemainingParameters(functionDescriptor: FunctionDescriptor, substituteCount: Int): List { var remainingCount = functionDescriptor.countDefaultParameters() - substituteCount - return functionDescriptor.valueParameters.filter { !it.declaresDefaultValue() || --remainingCount >= 0 } + return functionDescriptor.valueParameters.filter { !it.hasDefaultValue() || --remainingCount >= 0 } } private fun isEmptyConstructorNeeded(constructorDescriptor: ConstructorDescriptor, classOrObject: KtPureClassOrObject): Boolean { diff --git a/compiler/testData/codegen/box/multiplatform/defaultArguments/jvmOverloads.kt b/compiler/testData/codegen/box/multiplatform/defaultArguments/jvmOverloads.kt new file mode 100644 index 00000000000..700e90f9b5f --- /dev/null +++ b/compiler/testData/codegen/box/multiplatform/defaultArguments/jvmOverloads.kt @@ -0,0 +1,31 @@ +// !LANGUAGE: +MultiPlatformProjects +// TARGET_BACKEND: JVM +// WITH_RUNTIME +// FILE: J.java + +public class J { + public static String test() { + JvmKt.foo(-1); + JvmKt.foo(5, 5); + return "OK"; + } +} + +// FILE: common.kt + +expect fun foo(j: Int, i: Int = -1) + +// FILE: jvm.kt + +import kotlin.test.assertEquals + +@JvmOverloads +actual fun foo(j: Int, i: Int) { + assertEquals(j, i) +} + +fun box(): String { + foo(-1) + foo(5, 5) + return J.test(); +} diff --git a/compiler/tests-ir-jvm/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java b/compiler/tests-ir-jvm/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java index d6ff003c4ce..7267f6d3f3b 100644 --- a/compiler/tests-ir-jvm/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java +++ b/compiler/tests-ir-jvm/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java @@ -13288,6 +13288,11 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes runTest("compiler/testData/codegen/box/multiplatform/defaultArguments/inlineFunctionWithDefaultLambda.kt"); } + @TestMetadata("jvmOverloads.kt") + public void testJvmOverloads() throws Exception { + runTest("compiler/testData/codegen/box/multiplatform/defaultArguments/jvmOverloads.kt"); + } + @TestMetadata("kt23239.kt") public void testKt23239() throws Exception { runTest("compiler/testData/codegen/box/multiplatform/defaultArguments/kt23239.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java index 6826437f7d7..3383af29e71 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java @@ -13288,6 +13288,11 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { runTest("compiler/testData/codegen/box/multiplatform/defaultArguments/inlineFunctionWithDefaultLambda.kt"); } + @TestMetadata("jvmOverloads.kt") + public void testJvmOverloads() throws Exception { + runTest("compiler/testData/codegen/box/multiplatform/defaultArguments/jvmOverloads.kt"); + } + @TestMetadata("kt23239.kt") public void testKt23239() throws Exception { runTest("compiler/testData/codegen/box/multiplatform/defaultArguments/kt23239.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java index 56657a495f1..29e44734eeb 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -13288,6 +13288,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes runTest("compiler/testData/codegen/box/multiplatform/defaultArguments/inlineFunctionWithDefaultLambda.kt"); } + @TestMetadata("jvmOverloads.kt") + public void testJvmOverloads() throws Exception { + runTest("compiler/testData/codegen/box/multiplatform/defaultArguments/jvmOverloads.kt"); + } + @TestMetadata("kt23239.kt") public void testKt23239() throws Exception { runTest("compiler/testData/codegen/box/multiplatform/defaultArguments/kt23239.kt");