Minor, add some tests on get/set/name/instanceof for properties w/o reflection

This commit is contained in:
Alexander Udalov
2015-08-07 16:43:25 +03:00
parent 9f7cb752db
commit ccb58d8601
3 changed files with 65 additions and 0 deletions
@@ -0,0 +1,16 @@
// NO_KOTLIN_REFLECT
import kotlin.reflect.*
data class Box(val value: String)
var pr = Box("first")
fun box(): String {
val p = ::pr
if (p.get().value != "first") return "Fail value 1: ${p.get()}"
if (p.name != "pr") return "Fail name: ${p.name}"
p.set(Box("second"))
if (p.get().value != "second") return "Fail value 2: ${p.get()}"
return "OK"
}
@@ -0,0 +1,37 @@
// NO_KOTLIN_REFLECT
import kotlin.reflect.*
import kotlin.test.assertTrue
import kotlin.test.assertFalse
class A {
val readonly: String = ""
var mutable: String = ""
}
val readonly: String = ""
var mutable: String = ""
fun box(): String {
assertTrue(::readonly is KProperty0<*>)
assertFalse(::readonly is KMutableProperty0<*>)
assertFalse(::readonly is KProperty1<*, *>)
assertFalse(::readonly is KProperty2<*, *, *>)
assertTrue(::mutable is KProperty0<*>)
assertTrue(::mutable is KMutableProperty0<*>)
assertFalse(::mutable is KProperty1<*, *>)
assertFalse(::mutable is KProperty2<*, *, *>)
assertFalse(A::readonly is KProperty0<*>)
assertTrue(A::readonly is KProperty1<*, *>)
assertFalse(A::readonly is KMutableProperty1<*, *>)
assertFalse(A::readonly is KProperty2<*, *, *>)
assertFalse(A::mutable is KProperty0<*>)
assertTrue(A::mutable is KProperty1<*, *>)
assertTrue(A::mutable is KMutableProperty1<*, *>)
assertFalse(A::mutable is KProperty2<*, *, *>)
return "OK"
}