Delegated Properties: allowing type parameters for get/set methods

#KT-6253 Fixed
This commit is contained in:
Denis Zharkov
2014-12-04 23:24:12 +03:00
parent 3677881e18
commit 010af19fe9
6 changed files with 144 additions and 7 deletions
@@ -0,0 +1,25 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
class A<R>() {
fun <T> get(t: Any?, p: PropertyMetadata): T = null!!
fun <T> set(t: Any?, p: PropertyMetadata, x: T) = Unit
}
var a1: Int by <!TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>A<!>()
var a2: Int by A<String>()
class B<R>() {
fun <T> get(t: Any?, p: PropertyMetadata): T = null!!
fun set(t: Any?, p: PropertyMetadata, x: R) = Unit
}
var b1: Int by B()
var b2: Int by B<Number>()
class C<R>() {
fun get(t: Any?, p: PropertyMetadata): R = null!!
fun <T> set(t: Any?, p: PropertyMetadata, x: T) = Unit
}
var c1: Int by C()
var c2: Int by <!DELEGATE_SPECIAL_FUNCTION_RETURN_TYPE_MISMATCH!>C<Number>()<!>