43 lines
800 B
Kotlin
Vendored
43 lines
800 B
Kotlin
Vendored
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_EXPRESSION -UNUSED_VARIABLE
|
|
|
|
import kotlin.reflect.KProperty1
|
|
|
|
class Scope {
|
|
abstract class Nested<T> {
|
|
abstract val key: Int
|
|
abstract val keyT: T
|
|
}
|
|
}
|
|
|
|
fun simple(a: Any?) {}
|
|
fun <K> id(x: K): K = x
|
|
|
|
fun test() {
|
|
simple(Scope.Nested<String>::key)
|
|
val a = id(Scope.Nested<String>::keyT)
|
|
|
|
a
|
|
|
|
val b = id(Scope.Nested<*>::keyT)
|
|
|
|
b
|
|
|
|
val c = id(Scope.Nested<out Number?>::keyT)
|
|
|
|
c
|
|
|
|
val d = id(Scope.Nested<*>::keyT as Scope.Nested<Number>)
|
|
|
|
d
|
|
|
|
val g = id<KProperty1<Scope.Nested<*>, Any?>>(Scope.Nested<*>::keyT)
|
|
|
|
g
|
|
}
|
|
|
|
fun justResolve() {
|
|
val a = Scope.Nested<String>::key
|
|
val b = Scope.Nested<String>::keyT
|
|
val c = Scope.Nested<*>::keyT
|
|
val d = Scope.Nested<out Number?>::keyT
|
|
} |