K1: Support referencing class context receivers in a form of this@Name

This commit is contained in:
Denis.Zharkov
2022-03-24 13:35:40 +03:00
committed by teamcity
parent c33f06b9e4
commit 4349060db1
10 changed files with 83 additions and 43 deletions
@@ -15,7 +15,7 @@ class B : A() {
inner class C {
fun g() {
super@B.f()
<!DEBUG_INFO_MISSING_UNRESOLVED!>super<!><!UNRESOLVED_REFERENCE!>@Context<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>h<!>()
<!SUPERCLASS_NOT_ACCESSIBLE_FROM_INTERFACE!>super@Context<!>.<!UNRESOLVED_REFERENCE!>h<!>()
}
}
}
}
@@ -6,7 +6,7 @@ class A {
}
context(A) class B {
val prop = x + this<!UNRESOLVED_REFERENCE!>@A<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>x<!>
val prop = x + this@A.x
fun f() = x + this<!UNRESOLVED_REFERENCE!>@A<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>x<!>
}
fun f() = x + this@A.x
}
@@ -10,9 +10,9 @@ public final class A {
context(A) public final class B {
public constructor B()
public final val prop: [Error type: Not found recorded type for x + this@A.x]
public final val prop: kotlin.Int = 2
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final fun f(): [Error type: Return type for function cannot be resolved]
public final fun f(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}