From f41584c7abd55e62b52eefe449e1d7a28d56061b Mon Sep 17 00:00:00 2001 From: Svetlana Isakova Date: Wed, 5 Jun 2013 15:27:12 +0400 Subject: [PATCH] tests added for inference for delegated properties --- .../inference/extensionGet.kt | 33 +++++++++++++++++++ .../inference/extensionProperty.kt | 17 ++++++++++ .../checkers/JetDiagnosticsTestGenerated.java | 10 ++++++ 3 files changed, 60 insertions(+) create mode 100644 compiler/testData/diagnostics/tests/delegatedProperty/inference/extensionGet.kt create mode 100644 compiler/testData/diagnostics/tests/delegatedProperty/inference/extensionProperty.kt diff --git a/compiler/testData/diagnostics/tests/delegatedProperty/inference/extensionGet.kt b/compiler/testData/diagnostics/tests/delegatedProperty/inference/extensionGet.kt new file mode 100644 index 00000000000..835be3527de --- /dev/null +++ b/compiler/testData/diagnostics/tests/delegatedProperty/inference/extensionGet.kt @@ -0,0 +1,33 @@ +package foo + +class A1 { + val a: String by MyProperty1() +} + +class MyProperty1 {} +fun MyProperty1.get(thisRef: Any?, desc: PropertyMetadata): String { + throw Exception("$thisRef $desc") +} + +//-------------------- + +class A2 { + val a: String by MyProperty2() +} + +class MyProperty2 {} +fun MyProperty2.get(thisRef: Any?, desc: PropertyMetadata): T { + throw Exception("$thisRef $desc") +} + +//-------------------- + +class A3 { + val a: String by MyProperty3() + + class MyProperty3 {} + + fun MyProperty3.get(thisRef: Any?, desc: PropertyMetadata): T { + throw Exception("$thisRef $desc") + } +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/delegatedProperty/inference/extensionProperty.kt b/compiler/testData/diagnostics/tests/delegatedProperty/inference/extensionProperty.kt new file mode 100644 index 00000000000..a03a8e12390 --- /dev/null +++ b/compiler/testData/diagnostics/tests/delegatedProperty/inference/extensionProperty.kt @@ -0,0 +1,17 @@ +package foo + +open class A { + val B.w: Int by MyProperty() +} + +val A.e: Int by MyProperty() + +class B { + val A.f: Int by MyProperty() +} + +class MyProperty { + public fun get(thisRef: R, desc: PropertyMetadata): T { + throw Exception("$thisRef $desc") + } +} diff --git a/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java b/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java index c95d768f16c..7c04c0905b5 100644 --- a/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java @@ -2065,6 +2065,16 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage doTest("compiler/testData/diagnostics/tests/delegatedProperty/inference/differentDelegatedExpressions.kt"); } + @TestMetadata("extensionGet.kt") + public void testExtensionGet() throws Exception { + doTest("compiler/testData/diagnostics/tests/delegatedProperty/inference/extensionGet.kt"); + } + + @TestMetadata("extensionProperty.kt") + public void testExtensionProperty() throws Exception { + doTest("compiler/testData/diagnostics/tests/delegatedProperty/inference/extensionProperty.kt"); + } + @TestMetadata("noErrorsForImplicitConstraints.kt") public void testNoErrorsForImplicitConstraints() throws Exception { doTest("compiler/testData/diagnostics/tests/delegatedProperty/inference/noErrorsForImplicitConstraints.kt");