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,23 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
var a: Int by A()
var a1 by <!DELEGATE_SPECIAL_FUNCTION_MISSING, DELEGATE_SPECIAL_FUNCTION_MISSING!>A()<!>
var b: Int by B()
val cObj = C()
var c: String by cObj
class A {
fun <T> get(t: Any?, p: PropertyMetadata): T = null!!
fun <T> set(t: Any?, p: PropertyMetadata, x: T) = Unit
}
class B
fun <T> B.get(t: Any?, p: PropertyMetadata): T = null!!
fun <T> B.set(t: Any?, p: PropertyMetadata, x: T) = Unit
class C
inline fun <reified T> C.get(t: Any?, p: PropertyMetadata): T = null!!
inline fun <reified T> C.set(t: Any?, p: PropertyMetadata, x: T) = Unit