Add some tests on KProperty usage from delegate methods
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
import kotlin.reflect.KProperty
|
||||
|
||||
class Delegate {
|
||||
fun getValue(t: Any?, p: KProperty<*>): String {
|
||||
p.parameters
|
||||
p.returnType
|
||||
p.annotations
|
||||
return p.toString()
|
||||
}
|
||||
}
|
||||
|
||||
val prop: String by Delegate()
|
||||
|
||||
fun box() = if (prop == "val prop: kotlin.String") "OK" else "Fail: $prop"
|
||||
Vendored
+24
@@ -0,0 +1,24 @@
|
||||
// FULL_JDK
|
||||
|
||||
import kotlin.reflect.KProperty
|
||||
import kotlin.reflect.KProperty0
|
||||
import kotlin.test.assertFailsWith
|
||||
|
||||
class Delegate {
|
||||
fun getValue(t: Any?, p: KProperty<*>): String {
|
||||
return (p as KProperty0<String>).get()
|
||||
}
|
||||
}
|
||||
|
||||
val prop: String by Delegate()
|
||||
|
||||
fun box(): String {
|
||||
assertFailsWith(
|
||||
StackOverflowError::class.java,
|
||||
"Getting the property value with .get() from getValue is effectively an endless recursion and should fail"
|
||||
) {
|
||||
prop
|
||||
}
|
||||
|
||||
return "OK"
|
||||
}
|
||||
Reference in New Issue
Block a user