diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/ClosureCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/ClosureCodegen.java index 6e7f44080bb..cdc138d3386 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/ClosureCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/ClosureCodegen.java @@ -326,7 +326,7 @@ public class ClosureCodegen extends MemberCodegen { if (generateBody) { mv.visitCode(); InstructionAdapter iv = new InstructionAdapter(mv); - Method method = typeMapper.mapSignature(descriptor).getAsmMethod(); + Method method = typeMapper.mapSignature(descriptor.getOriginal()).getAsmMethod(); iv.aconst(method.getName() + method.getDescriptor()); iv.areturn(JAVA_STRING_TYPE); FunctionCodegen.endVisit(iv, "function reference getSignature", element); diff --git a/compiler/testData/codegen/boxWithStdlib/reflection/call/memberOfGenericClass.kt b/compiler/testData/codegen/boxWithStdlib/reflection/call/memberOfGenericClass.kt new file mode 100644 index 00000000000..76220c13639 --- /dev/null +++ b/compiler/testData/codegen/boxWithStdlib/reflection/call/memberOfGenericClass.kt @@ -0,0 +1,12 @@ +var result = "Fail" + +class A { + fun foo(t: T) { + result = t as String + } +} + +fun box(): String { + (A::foo).call(A(), "OK") + return result +} diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/generated/BlackBoxWithStdlibCodegenTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/generated/BlackBoxWithStdlibCodegenTestGenerated.java index 5bc5c3b1ef6..978716473f2 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/generated/BlackBoxWithStdlibCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/generated/BlackBoxWithStdlibCodegenTestGenerated.java @@ -2799,6 +2799,12 @@ public class BlackBoxWithStdlibCodegenTestGenerated extends AbstractBlackBoxCode doTestWithStdlib(fileName); } + @TestMetadata("memberOfGenericClass.kt") + public void testMemberOfGenericClass() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxWithStdlib/reflection/call/memberOfGenericClass.kt"); + doTestWithStdlib(fileName); + } + @TestMetadata("platformStatic.kt") public void testPlatformStatic() throws Exception { String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxWithStdlib/reflection/call/platformStatic.kt");