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