class A(val a:Int) { inner class B() { val x = this@B : B val y = this@A : A val z = this : B val Int.xx : Int get() = this : Int fun Char.xx() : Any { this : Char val a = {Double.() -> this : Double + this@xx : Char} val b = @a{Double.() -> this@a : Double + this@xx : Char} val c = @a{() -> this@a + this@xx : Char} return (@a{Double.() -> this@a : Double + this@xx : Char}) } } }