// !LANGUAGE: +ContextReceivers class A(val a: T) class B(val b: Any) class C(val c: Any) context(A, B) var p: Int get() { this@A.a.length this@B.b this return 1 } set(value) { this@A.a.length this@B.b this field = value } context(A, A, B) var p: Int get() { this@A.a.toDouble() this@A.a.length this@B.b this return 1 } set(value) { this@A.a.length this@B.b this field = value } context(A, A, B) val C.p: Int get() { this@A.a.length this@B.b this@C.c this@p.c this.c return 1 }