From 2f88f830b8103586541198c9d883366ea8a281ed Mon Sep 17 00:00:00 2001 From: Michael Bogdanov Date: Sat, 18 Apr 2015 12:49:36 +0300 Subject: [PATCH] Test for KT-5969: Codegen overrides all java 8 default methods with delegation to unexisting Timpl #KT-5969 Fixed --- .../BlackBoxWithJava8CodegenTestGenerated.java | 6 ++++++ .../dontDelegateToDefaultMethods/Test.java | 8 ++++++++ .../dontDelegateToDefaultMethods/delegation.kt | 11 +++++++++++ 3 files changed, 25 insertions(+) create mode 100644 compiler/testData/codegen/java8/boxWithJava/dontDelegateToDefaultMethods/Test.java create mode 100644 compiler/testData/codegen/java8/boxWithJava/dontDelegateToDefaultMethods/delegation.kt diff --git a/compiler/java8-tests/tests/org/jetbrains/kotlin/codegen/generated/BlackBoxWithJava8CodegenTestGenerated.java b/compiler/java8-tests/tests/org/jetbrains/kotlin/codegen/generated/BlackBoxWithJava8CodegenTestGenerated.java index 523e1f8ee8a..6bae70acab4 100644 --- a/compiler/java8-tests/tests/org/jetbrains/kotlin/codegen/generated/BlackBoxWithJava8CodegenTestGenerated.java +++ b/compiler/java8-tests/tests/org/jetbrains/kotlin/codegen/generated/BlackBoxWithJava8CodegenTestGenerated.java @@ -47,6 +47,12 @@ public class BlackBoxWithJava8CodegenTestGenerated extends AbstractBlackBoxCodeg doTestWithJava(fileName); } + @TestMetadata("dontDelegateToDefaultMethods") + public void testDontDelegateToDefaultMethods() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/java8/boxWithJava/dontDelegateToDefaultMethods/"); + doTestWithJava(fileName); + } + @TestMetadata("samOnInterfaceWithDefaultMethod") public void testSamOnInterfaceWithDefaultMethod() throws Exception { String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/java8/boxWithJava/samOnInterfaceWithDefaultMethod/"); diff --git a/compiler/testData/codegen/java8/boxWithJava/dontDelegateToDefaultMethods/Test.java b/compiler/testData/codegen/java8/boxWithJava/dontDelegateToDefaultMethods/Test.java new file mode 100644 index 00000000000..1e92c6bc32d --- /dev/null +++ b/compiler/testData/codegen/java8/boxWithJava/dontDelegateToDefaultMethods/Test.java @@ -0,0 +1,8 @@ +interface Test { + + T call(); + + default T testDefault(T p) { + return p; + } +} diff --git a/compiler/testData/codegen/java8/boxWithJava/dontDelegateToDefaultMethods/delegation.kt b/compiler/testData/codegen/java8/boxWithJava/dontDelegateToDefaultMethods/delegation.kt new file mode 100644 index 00000000000..dc115d0bd78 --- /dev/null +++ b/compiler/testData/codegen/java8/boxWithJava/dontDelegateToDefaultMethods/delegation.kt @@ -0,0 +1,11 @@ +class Child : Test { + override fun call() : String { + return "OK" + } +} +fun box(): String { + val res = Child().call() + if (res != "OK") return "fail $res" + + return Child().testDefault("OK") +}