Support reified extension properties

This commit is contained in:
Mikhael Bogdanov
2016-06-21 16:16:55 +03:00
parent 7c67a3315a
commit 7baf70e8fa
6 changed files with 83 additions and 1 deletions
@@ -0,0 +1,15 @@
// WITH_RUNTIME
// FILE: 1.kt
package test
inline val <reified T: Any> T.value: String
get() = T::class.java.name
// FILE: 2.kt
import test.*
class OK
fun box(): String {
return OK().value
}
@@ -0,0 +1,25 @@
// WITH_RUNTIME
// FILE: 1.kt
package test
var bvalue: String = ""
inline var <reified T : Any> T.value: String
get() = T::class.java.name + bvalue
set(p: String) {
bvalue = p
}
// FILE: 2.kt
import test.*
class O
fun box(): String {
val o = O()
val value1 = o.value
if (value1 != "O") return "fail 1: $value1"
o.value = "K"
return o.value
}