30794060a9
Leave only 3*2 = 6 classes: KProperty0, KProperty1, KProperty2 and their mutable analogs, depending on the number of receivers a property takes
26 lines
536 B
Kotlin
Vendored
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")
|
|
}
|