[FIR] Implement UNRESOLVED_REFERENCE_WRONG_RECEIVER

This commit is contained in:
Ivan Kochurkin
2021-08-10 16:40:51 +03:00
committed by Space
parent 34cc7e5199
commit 84c5f58cab
129 changed files with 322 additions and 481 deletions
@@ -16,37 +16,37 @@ interface C {
fun foo(x: Any?) {
if (x is A && x is B) {
x.foo().checkType { <!INAPPLICABLE_CANDIDATE!>_<!><String>() }
x.foo().checkType { <!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>_<!><String>() }
x.foo().checkType { _<String?>() }
}
if (x is B && x is A) {
x.foo().checkType { <!INAPPLICABLE_CANDIDATE!>_<!><String>() }
x.foo().checkType { <!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>_<!><String>() }
x.foo().checkType { _<String?>() }
}
if (x is A && x is C) {
x.foo().checkType { _<String>() }
x.foo().checkType { <!INAPPLICABLE_CANDIDATE!>_<!><String?>() }
x.foo().checkType { <!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>_<!><String?>() }
}
if (x is C && x is A) {
x.foo().checkType { _<String>() }
x.foo().checkType { <!INAPPLICABLE_CANDIDATE!>_<!><String?>() }
x.foo().checkType { <!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>_<!><String?>() }
}
if (x is A && x is B && x is C) {
x.foo().checkType { _<String>() }
x.foo().checkType { <!INAPPLICABLE_CANDIDATE!>_<!><String?>() }
x.foo().checkType { <!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>_<!><String?>() }
}
if (x is B && x is A && x is C) {
x.foo().checkType { _<String>() }
x.foo().checkType { <!INAPPLICABLE_CANDIDATE!>_<!><String?>() }
x.foo().checkType { <!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>_<!><String?>() }
}
if (x is B && x is C && x is A) {
x.foo().checkType { _<String>() }
x.foo().checkType { <!INAPPLICABLE_CANDIDATE!>_<!><String?>() }
x.foo().checkType { <!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>_<!><String?>() }
}
}