diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/FunctionCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/FunctionCodegen.java index b3319ef32b8..e32d38de1aa 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/FunctionCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/FunctionCodegen.java @@ -225,7 +225,7 @@ public class FunctionCodegen { JvmMethodSignature signature = typeMapper.mapSignatureSkipGeneric(functionDescriptor); generateParameterAnnotations(functionDescriptor, mv, signature); - GenerateJava8ParameterNamesKt.generateParameterNames(functionDescriptor, mv, signature, state, (flags & ACC_SYNTHETIC) != 0); + GenerateJava8ParameterNamesKt.generateParameterNames(functionDescriptor, mv, jvmSignature, state, (flags & ACC_SYNTHETIC) != 0); generateBridges(functionDescriptor); diff --git a/compiler/testData/codegen/java8/box/parametersMetadata/defaultImpls.kt b/compiler/testData/codegen/java8/box/parametersMetadata/defaultImpls.kt new file mode 100644 index 00000000000..2f6b641cf4d --- /dev/null +++ b/compiler/testData/codegen/java8/box/parametersMetadata/defaultImpls.kt @@ -0,0 +1,19 @@ +// WITH_RUNTIME +// FULL_JDK +// KOTLIN_CONFIGURATION_FLAGS: +JVM.PARAMETERS_METADATA + +interface Test { + fun test(OK: String) = "123" +} + + +fun box(): String { + val testMethod = Class.forName("Test\$DefaultImpls").declaredMethods.single() + val parameters = testMethod.getParameters() + + if (!parameters[0].isSynthetic()) return "wrong modifier on receiver parameter: ${parameters[0].modifiers}" + + if (parameters[1].modifiers != 0) return "wrong modifier on value parameter: ${parameters[1].modifiers}" + + return parameters[1].name +} \ No newline at end of file diff --git a/compiler/tests-java8/tests/org/jetbrains/kotlin/codegen/BlackBoxWithJava8CodegenTestGenerated.java b/compiler/tests-java8/tests/org/jetbrains/kotlin/codegen/BlackBoxWithJava8CodegenTestGenerated.java index 7f1ab7dfc50..f64c0f57e23 100644 --- a/compiler/tests-java8/tests/org/jetbrains/kotlin/codegen/BlackBoxWithJava8CodegenTestGenerated.java +++ b/compiler/tests-java8/tests/org/jetbrains/kotlin/codegen/BlackBoxWithJava8CodegenTestGenerated.java @@ -578,6 +578,12 @@ public class BlackBoxWithJava8CodegenTestGenerated extends AbstractBlackBoxCodeg KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/codegen/java8/box/parametersMetadata"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); } + @TestMetadata("defaultImpls.kt") + public void testDefaultImpls() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/java8/box/parametersMetadata/defaultImpls.kt"); + doTest(fileName); + } + @TestMetadata("enum.kt") public void testEnum() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/java8/box/parametersMetadata/enum.kt");