[FE] Report ambiguity when label can refer to multiple receivers

This commit is contained in:
Anastasiya Shadrina
2021-11-07 19:31:35 +07:00
committed by TeamCityServer
parent fd7d000138
commit ac27fda965
18 changed files with 164 additions and 39 deletions
@@ -4,16 +4,26 @@ class A<T>(val a: T)
class B(val b: Any)
class C(val c: Any)
context(A<Int>, A<String>, B) fun f() {
context(A<String>) fun A<Int>.f() {
this<!AMBIGUOUS_LABEL!>@A<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>a<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>length<!>
}
context(A<String>, B) fun f() {
this@A.a.length
this@B.b
<!NO_THIS!>this<!>
}
context(A<Int>, A<String>, B) fun f() {
this<!AMBIGUOUS_LABEL!>@A<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>a<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>length<!>
this@B.b
<!NO_THIS!>this<!>
}
context(A<Int>, A<String>, B) fun C.f() {
this@A.a.length
this<!AMBIGUOUS_LABEL!>@A<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>a<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>length<!>
this@B.b
this@C.c
this@f.c
this.c
}
}