From 9599f7d98ccc837c1c25e308bcdc46802e720a08 Mon Sep 17 00:00:00 2001 From: "Pavel V. Talanov" Date: Tue, 17 Sep 2013 21:28:34 +0400 Subject: [PATCH] Test for delegated members being overridden --- .../diagnostics/tests/override/Delegation.kt | 49 +++++++++++++++++++ .../checkers/JetDiagnosticsTestGenerated.java | 5 ++ 2 files changed, 54 insertions(+) create mode 100644 compiler/testData/diagnostics/tests/override/Delegation.kt diff --git a/compiler/testData/diagnostics/tests/override/Delegation.kt b/compiler/testData/diagnostics/tests/override/Delegation.kt new file mode 100644 index 00000000000..c3bbd70a80c --- /dev/null +++ b/compiler/testData/diagnostics/tests/override/Delegation.kt @@ -0,0 +1,49 @@ +package test + +trait X { + fun foo(): String? { + return null + } +} + +trait Y { + fun foo(): String { + return "foo" + } +} + +trait Incompatible { + fun foo(): Int { + return 3 + } +} + +class Test1(val x: X) : X by x, Y { + override fun foo(): String? { + return null + } +} + +class Test2(val x: X) : X by x, Y { + override fun foo(): String { + return "foo" + } +} + +class Test3(val y: Y) : X, Y by y { + override fun foo(): String? { + return null + } +} + +class Test4(val y: Y) : X, Y by y { + override fun foo(): String { + return "foo" + } +} + +class Test5(val y: Y, val x: X) : X by x, Y by y, Incompatible { + override fun foo(): Int { + return 3 + } +} \ No newline at end of file diff --git a/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java b/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java index efb3b8316be..ae0c066ff82 100644 --- a/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java @@ -4350,6 +4350,11 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage doTest("compiler/testData/diagnostics/tests/override/DefaultParameterValues-NoErrorsWhenInheritingFromOneTypeTwice.kt"); } + @TestMetadata("Delegation.kt") + public void testDelegation() throws Exception { + doTest("compiler/testData/diagnostics/tests/override/Delegation.kt"); + } + @TestMetadata("DelegationFun.kt") public void testDelegationFun() throws Exception { doTest("compiler/testData/diagnostics/tests/override/DelegationFun.kt");