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
@@ -17,12 +17,12 @@ public interface J2 extends J {
|
||||
// FILE: main.kt
|
||||
fun main() {
|
||||
<!INAPPLICABLE_CANDIDATE!>J<!> { s: String -> s} // should be prohibited, because SAM value parameter has nullable type
|
||||
J { "" + it.<!INAPPLICABLE_CANDIDATE!>length<!> }
|
||||
J { "" + it.<!UNSAFE_CALL!>length<!> }
|
||||
J { null }
|
||||
J { it?.length?.toString() }
|
||||
|
||||
<!INAPPLICABLE_CANDIDATE!>J2<!> { s: String -> s}
|
||||
J2 { "" + it.<!INAPPLICABLE_CANDIDATE!>length<!> }
|
||||
J2 { "" + it.<!UNSAFE_CALL!>length<!> }
|
||||
J2 { null }
|
||||
J2 { it?.length?.toString() }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user