package test interface A { fun foo(x: T & Any) val w: T & Any } class B(r: X & Any) fun inside() { object : A { override fun foo(x: K & Any) { } override val w: K & Any get() = TODO("") } } fun bar1(x: F & Any) {} fun bar2(x: F) = x!! val E.nn: E & Any get() = this!! class Outer { abstract class R1 : A abstract class R2 : A abstract class W : A } typealias Alias = A