FIR checker: differentiate UNSAFE_CALL from INAPPLICABLE_CANDIDATE
To do so, inside the root cause of inapplicable candidate errors, we will record expected/actual type of receiver, if any. That will help identifying inapplicable calls on nullable receiver.
This commit is contained in:
committed by
Mikhail Glukhikh
parent
4b823eca21
commit
e72ddbcbfe
@@ -9,13 +9,13 @@ interface T {
|
||||
}
|
||||
|
||||
fun test(t: T) {
|
||||
t.<!INAPPLICABLE_CANDIDATE!>f<!>(1) //unsafe call error
|
||||
t.<!UNSAFE_CALL!>f<!>(1) //unsafe call error
|
||||
t.f?.invoke(1)
|
||||
}
|
||||
|
||||
fun test1(t: T?) {
|
||||
t.<!UNRESOLVED_REFERENCE!>f<!>(1) // todo resolve f as value and report UNSAFE_CALL
|
||||
t?.<!INAPPLICABLE_CANDIDATE!>f<!>(1)
|
||||
t.<!INAPPLICABLE_CANDIDATE!>f<!>?.invoke(1)
|
||||
t?.<!UNSAFE_CALL!>f<!>(1)
|
||||
t.<!UNSAFE_CALL!>f<!>?.invoke(1)
|
||||
t?.f?.invoke(1)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user