Files
kotlin-fork/compiler/testData/diagnostics/tests/callableReference/property/memberFromTopLevel.kt
T
Alexander Udalov 30794060a9 Simplify property hierarchy in reflection
Leave only 3*2 = 6 classes: KProperty0, KProperty1, KProperty2 and their
mutable analogs, depending on the number of receivers a property takes
2015-07-10 20:10:09 +03:00

26 lines
536 B
Kotlin
Vendored

// !CHECK_TYPE
import kotlin.reflect.*
class A {
val foo: Int = 42
var bar: String = ""
}
fun test() {
val p = A::foo
checkSubtype<KProperty1<A, Int>>(p)
checkSubtype<KMutableProperty1<A, Int>>(<!TYPE_MISMATCH!>p<!>)
checkSubtype<Int>(p.get(A()))
p.get(<!NO_VALUE_FOR_PARAMETER!>)<!>
p.<!UNRESOLVED_REFERENCE!>set<!>(A(), 239)
val q = A::bar
checkSubtype<KProperty1<A, String>>(q)
checkSubtype<KMutableProperty1<A, String>>(q)
checkSubtype<String>(q.get(A()))
q.set(A(), "q")
}