diff --git a/compiler/testData/codegen/boxAgainstJava/sam/adapters/BridgesForOverridden.java b/compiler/testData/codegen/boxAgainstJava/sam/adapters/BridgesForOverridden.java new file mode 100644 index 00000000000..9cbd1d040bb --- /dev/null +++ b/compiler/testData/codegen/boxAgainstJava/sam/adapters/BridgesForOverridden.java @@ -0,0 +1,19 @@ +class JavaClass { + public interface Super1 { + Thread call(T t); + } + + public interface Super2 { + T call(String s); + } + + public interface Sub extends Super1, Super2 { + Thread call(String s); + } + + static void samAdapter(Sub sub) { + ((Super1) sub).call(""); + ((Super2) sub).call(""); + sub.call(""); + } +} diff --git a/compiler/testData/codegen/boxAgainstJava/sam/adapters/BridgesForOverridden.kt b/compiler/testData/codegen/boxAgainstJava/sam/adapters/BridgesForOverridden.kt new file mode 100644 index 00000000000..0c595206399 --- /dev/null +++ b/compiler/testData/codegen/boxAgainstJava/sam/adapters/BridgesForOverridden.kt @@ -0,0 +1,13 @@ +fun box(): String? { + var s: String? + s = "FAIL for function literal" + JavaClass.samAdapter { s = "OK"; null } + if (s != "OK") return s + + s = "FAIL for wrapper" + val function: (String?) -> Thread? = { s = "OK"; null } + JavaClass.samAdapter(function) + if (s != "OK") return s + + return "OK" +} diff --git a/compiler/testData/codegen/boxAgainstJava/sam/adapters/kt5912.java b/compiler/testData/codegen/boxAgainstJava/sam/adapters/BridgesForOverriddenComplex.java similarity index 90% rename from compiler/testData/codegen/boxAgainstJava/sam/adapters/kt5912.java rename to compiler/testData/codegen/boxAgainstJava/sam/adapters/BridgesForOverriddenComplex.java index b2c3de5ffdb..79fe82dcb10 100644 --- a/compiler/testData/codegen/boxAgainstJava/sam/adapters/kt5912.java +++ b/compiler/testData/codegen/boxAgainstJava/sam/adapters/BridgesForOverriddenComplex.java @@ -1,4 +1,5 @@ -public class kt5912 { +// KT-5912 +class JavaClass { public static interface Action { void call(T t); } @@ -13,4 +14,4 @@ public class kt5912 { void perform(T t, OnSubscribe subscribe) { subscribe.call(new Some(t)); } -} \ No newline at end of file +} diff --git a/compiler/testData/codegen/boxAgainstJava/sam/adapters/bridgesForOverriddenComplex.kt b/compiler/testData/codegen/boxAgainstJava/sam/adapters/bridgesForOverriddenComplex.kt new file mode 100644 index 00000000000..d77644aa8be --- /dev/null +++ b/compiler/testData/codegen/boxAgainstJava/sam/adapters/bridgesForOverriddenComplex.kt @@ -0,0 +1,6 @@ +// KT-5912 +fun box(): String { + var s = "Failt" + JavaClass().perform("") { s = "OK" } + return s +} diff --git a/compiler/testData/codegen/boxAgainstJava/sam/adapters/kt5912.kt b/compiler/testData/codegen/boxAgainstJava/sam/adapters/kt5912.kt deleted file mode 100644 index 5eef0a5da9d..00000000000 --- a/compiler/testData/codegen/boxAgainstJava/sam/adapters/kt5912.kt +++ /dev/null @@ -1,5 +0,0 @@ -fun box(): String { - var s = "Failt" - kt5912().perform("") { s = "OK" } - return s -} \ No newline at end of file diff --git a/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxAgainstJavaCodegenTestGenerated.java b/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxAgainstJavaCodegenTestGenerated.java index b829c845ae7..44a835c763f 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxAgainstJavaCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxAgainstJavaCodegenTestGenerated.java @@ -356,6 +356,18 @@ public class BlackBoxAgainstJavaCodegenTestGenerated extends AbstractBlackBoxCod JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/codegen/boxAgainstJava/sam/adapters"), Pattern.compile("^(.+)\\.kt$"), true); } + @TestMetadata("bridgesForOverridden.kt") + public void testBridgesForOverridden() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxAgainstJava/sam/adapters/bridgesForOverridden.kt"); + doTestAgainstJava(fileName); + } + + @TestMetadata("bridgesForOverriddenComplex.kt") + public void testBridgesForOverriddenComplex() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxAgainstJava/sam/adapters/bridgesForOverriddenComplex.kt"); + doTestAgainstJava(fileName); + } + @TestMetadata("callAbstractAdapter.kt") public void testCallAbstractAdapter() throws Exception { String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxAgainstJava/sam/adapters/callAbstractAdapter.kt"); @@ -410,12 +422,6 @@ public class BlackBoxAgainstJavaCodegenTestGenerated extends AbstractBlackBoxCod doTestAgainstJava(fileName); } - @TestMetadata("kt5912.kt") - public void testKt5912() throws Exception { - String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxAgainstJava/sam/adapters/kt5912.kt"); - doTestAgainstJava(fileName); - } - @TestMetadata("nonLiteralAndLiteralRunnable.kt") public void testNonLiteralAndLiteralRunnable() throws Exception { String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxAgainstJava/sam/adapters/nonLiteralAndLiteralRunnable.kt");