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 6bae70acab4..4e17e4b4d7a 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 @@ -35,9 +35,15 @@ public class BlackBoxWithJava8CodegenTestGenerated extends AbstractBlackBoxCodeg JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/codegen/java8/boxWithJava"), Pattern.compile("^([^\\.]+)$"), true); } - @TestMetadata("defaultMethodCall") - public void testDefaultMethodCall() throws Exception { - String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/java8/boxWithJava/defaultMethodCall/"); + @TestMetadata("defaultMethodCallFromTrait") + public void testDefaultMethodCallFromTrait() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/java8/boxWithJava/defaultMethodCallFromTrait/"); + doTestWithJava(fileName); + } + + @TestMetadata("defaultMethodCallViaClass") + public void testDefaultMethodCallViaClass() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/java8/boxWithJava/defaultMethodCallViaClass/"); doTestWithJava(fileName); } @@ -47,12 +53,24 @@ public class BlackBoxWithJava8CodegenTestGenerated extends AbstractBlackBoxCodeg doTestWithJava(fileName); } + @TestMetadata("defaultMethodOverride") + public void testDefaultMethodOverride() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/java8/boxWithJava/defaultMethodOverride/"); + doTestWithJava(fileName); + } + @TestMetadata("dontDelegateToDefaultMethods") public void testDontDelegateToDefaultMethods() throws Exception { String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/java8/boxWithJava/dontDelegateToDefaultMethods/"); doTestWithJava(fileName); } + @TestMetadata("inheritKotlin") + public void testInheritKotlin() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/java8/boxWithJava/inheritKotlin/"); + 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/defaultMethodCall/Simple.java b/compiler/testData/codegen/java8/boxWithJava/defaultMethodCallFromTrait/Simple.java similarity index 100% rename from compiler/testData/codegen/java8/boxWithJava/defaultMethodCall/Simple.java rename to compiler/testData/codegen/java8/boxWithJava/defaultMethodCallFromTrait/Simple.java diff --git a/compiler/testData/codegen/java8/boxWithJava/defaultMethodCallFromTrait/defaultCall.kt b/compiler/testData/codegen/java8/boxWithJava/defaultMethodCallFromTrait/defaultCall.kt new file mode 100644 index 00000000000..55133e93878 --- /dev/null +++ b/compiler/testData/codegen/java8/boxWithJava/defaultMethodCallFromTrait/defaultCall.kt @@ -0,0 +1,14 @@ +trait KTrait : Simple { + fun bar(): String { + return test("O") + Simple.testStatic("O") + } +} + +class Test : KTrait {} + +fun box(): String { + val test = Test().bar() + if (test != "OKOK") return "fail $test" + + return "OK" +} \ No newline at end of file diff --git a/compiler/testData/codegen/java8/boxWithJava/defaultMethodCallViaClass/Simple.java b/compiler/testData/codegen/java8/boxWithJava/defaultMethodCallViaClass/Simple.java new file mode 100644 index 00000000000..9e37ab67659 --- /dev/null +++ b/compiler/testData/codegen/java8/boxWithJava/defaultMethodCallViaClass/Simple.java @@ -0,0 +1,9 @@ +interface Simple { + default String test(String s) { + return s + "K"; + } + + static String testStatic(String s) { + return s + "K"; + } +} \ No newline at end of file diff --git a/compiler/testData/codegen/java8/boxWithJava/defaultMethodCall/Simple.kt b/compiler/testData/codegen/java8/boxWithJava/defaultMethodCallViaClass/defaultCall.kt similarity index 100% rename from compiler/testData/codegen/java8/boxWithJava/defaultMethodCall/Simple.kt rename to compiler/testData/codegen/java8/boxWithJava/defaultMethodCallViaClass/defaultCall.kt diff --git a/compiler/testData/codegen/java8/boxWithJava/defaultMethodOverride/Simple.java b/compiler/testData/codegen/java8/boxWithJava/defaultMethodOverride/Simple.java new file mode 100644 index 00000000000..552a157fcb7 --- /dev/null +++ b/compiler/testData/codegen/java8/boxWithJava/defaultMethodOverride/Simple.java @@ -0,0 +1,5 @@ +interface Simple { + default String test(String s) { + return s + "Fail"; + } +} \ No newline at end of file diff --git a/compiler/testData/codegen/java8/boxWithJava/defaultMethodOverride/override.kt b/compiler/testData/codegen/java8/boxWithJava/defaultMethodOverride/override.kt new file mode 100644 index 00000000000..d834a1f60cb --- /dev/null +++ b/compiler/testData/codegen/java8/boxWithJava/defaultMethodOverride/override.kt @@ -0,0 +1,13 @@ +trait KTrait: Simple { + override fun test(s: String): String { + return s + "K" + } +} + +class Test : KTrait { + +} + +fun box(): String { + return Test().test("O") +} \ No newline at end of file diff --git a/compiler/testData/codegen/java8/boxWithJava/dontDelegateToDefaultMethods/delegation.kt b/compiler/testData/codegen/java8/boxWithJava/dontDelegateToDefaultMethods/dontDelegate.kt similarity index 100% rename from compiler/testData/codegen/java8/boxWithJava/dontDelegateToDefaultMethods/delegation.kt rename to compiler/testData/codegen/java8/boxWithJava/dontDelegateToDefaultMethods/dontDelegate.kt diff --git a/compiler/testData/codegen/java8/boxWithJava/inheritKotlin/Simple.java b/compiler/testData/codegen/java8/boxWithJava/inheritKotlin/Simple.java new file mode 100644 index 00000000000..02c979c1af1 --- /dev/null +++ b/compiler/testData/codegen/java8/boxWithJava/inheritKotlin/Simple.java @@ -0,0 +1,5 @@ +interface Simple extends KTrait { + default String test() { + return "simple"; + } +} \ No newline at end of file diff --git a/compiler/testData/codegen/java8/boxWithJava/inheritKotlin/defaultCall.kt b/compiler/testData/codegen/java8/boxWithJava/inheritKotlin/defaultCall.kt new file mode 100644 index 00000000000..c9572f45f37 --- /dev/null +++ b/compiler/testData/codegen/java8/boxWithJava/inheritKotlin/defaultCall.kt @@ -0,0 +1,23 @@ +trait KTrait { + fun test(): String { + return "base"; + } +} + +class Test : Simple { + + fun bar(): String { + return super.test() + } + +} + +fun box(): String { + val test = Test().test() + if (test != "simple") return "fail $test" + + val bar = Test().bar() + if (bar != "simple") return "fail 2 $bar" + + return "OK" +} \ No newline at end of file