Support reified extension properties
This commit is contained in:
@@ -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
|
||||
}
|
||||
Reference in New Issue
Block a user