package qualified_this { ~qtA~class A(val a:Int) { ~qtB~class B() { val x = `qtB`this`qtB`@B val y = `qtA`this`qtA`@A val z = `qtB`this ~xx~val Int.xx = `xx`this : Int ~xx()~fun Int.xx() { `xx()`this : Int val a = {Int.() -> `xx()`this`xx()`@xx + this} } } } } class A<~T~T, ~E~E> { val a : `T`T val x : A<`T`T, `E`E> class X<~X.T~T> : A<`X.T`T, `E`E> { val a : `X.T`T val b : `X.E`E ~X.E~class E {} } }