diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java index 6bcbd0204ca..75edeb4cc98 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java @@ -1760,6 +1760,10 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen { continue; } + if (CallResolverUtil.isOrOverridesSynthesized(callableMemberDescriptor)) { + continue; + } + Collection overriddenDeclarations = OverridingUtil.getOverriddenDeclarations(callableMemberDescriptor); diff --git a/compiler/testData/codegen/boxWithJava/sam/adapters/implementAdapter.java b/compiler/testData/codegen/boxWithJava/sam/adapters/implementAdapter.java new file mode 100644 index 00000000000..9961787a66e --- /dev/null +++ b/compiler/testData/codegen/boxWithJava/sam/adapters/implementAdapter.java @@ -0,0 +1,3 @@ +interface JavaInterface { + void foo(Runnable r); +} diff --git a/compiler/testData/codegen/boxWithJava/sam/adapters/implementAdapter.kt b/compiler/testData/codegen/boxWithJava/sam/adapters/implementAdapter.kt new file mode 100644 index 00000000000..0e9d45f3f90 --- /dev/null +++ b/compiler/testData/codegen/boxWithJava/sam/adapters/implementAdapter.kt @@ -0,0 +1,12 @@ +class Impl: JavaInterface { + override fun foo(r: Runnable?) { + r?.run() + } +} + +fun box(): String { + val fooMethods = javaClass().getMethods().filter { it.getName() == "foo" } + if (fooMethods.size() != 1) return fooMethods.toString() + + return "OK" +} \ No newline at end of file diff --git a/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxWithJavaCodegenTestGenerated.java b/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxWithJavaCodegenTestGenerated.java index 281d1f0884b..51f2679b555 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxWithJavaCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxWithJavaCodegenTestGenerated.java @@ -224,6 +224,11 @@ public class BlackBoxWithJavaCodegenTestGenerated extends AbstractBlackBoxCodege doTestWithJava("compiler/testData/codegen/boxWithJava/sam/adapters/fileFilter.kt"); } + @TestMetadata("implementAdapter.kt") + public void testImplementAdapter() throws Exception { + doTestWithJava("compiler/testData/codegen/boxWithJava/sam/adapters/implementAdapter.kt"); + } + @TestMetadata("inheritedInKotlin.kt") public void testInheritedInKotlin() throws Exception { doTestWithJava("compiler/testData/codegen/boxWithJava/sam/adapters/inheritedInKotlin.kt");