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
@@ -2,12 +2,12 @@ class D(val a: String, val b: Boolean)
|
||||
|
||||
fun foo(p: Boolean, v: D?): String {
|
||||
if (p && v!!.b) v.a
|
||||
else v.<!INAPPLICABLE_CANDIDATE!>a<!>
|
||||
else v.<!UNSAFE_CALL!>a<!>
|
||||
if (p && v!! == D("?", false)) v.a
|
||||
else v.<!INAPPLICABLE_CANDIDATE!>a<!>
|
||||
if (p || v!!.b) v.<!INAPPLICABLE_CANDIDATE!>a<!>
|
||||
else v.<!UNSAFE_CALL!>a<!>
|
||||
if (p || v!!.b) v.<!UNSAFE_CALL!>a<!>
|
||||
else v.a
|
||||
if (p || v!! == D("?", false)) v.<!INAPPLICABLE_CANDIDATE!>a<!>
|
||||
if (p || v!! == D("?", false)) v.<!UNSAFE_CALL!>a<!>
|
||||
else v.a
|
||||
return ""
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user