FIR: add UnsafeCall resolution diagnostics
Previously unsafe call is reported as part of InapplicableWrongReceiver. This makes it difficult for the downstream checkers to report different diagnostics.
This commit is contained in:
committed by
Mikhail Glukhikh
parent
43a2ad0467
commit
6a03f31e50
+2
-2
@@ -80,7 +80,7 @@ operator fun <T> Foo6<T>.invoke(x: Int) {}
|
||||
|
||||
fun main(x: Bar6<String>?) {
|
||||
x?.value(1)
|
||||
x?.value.<!NONE_APPLICABLE!>invoke<!>(1)
|
||||
x?.value<!UNSAFE_CALL!>.<!>invoke(1)
|
||||
}
|
||||
|
||||
// Test case 7: top-level generic invoke and invoke with compatible additional dispatch recevier
|
||||
@@ -108,7 +108,7 @@ operator fun Foo8<String>.invoke(x: Int) {}
|
||||
|
||||
fun main(x: Bar8<String>?) {
|
||||
x?.value(1)
|
||||
x?.value.<!NONE_APPLICABLE!>invoke<!>(1)
|
||||
x?.value<!UNSAFE_CALL!>.<!>invoke(1)
|
||||
}
|
||||
|
||||
// Test case 9: additional receiver, generic invoke with pure type perameter receiver
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ fun test(a: A) {
|
||||
|
||||
with("") {
|
||||
a.x(<!NO_VALUE_FOR_PARAMETER!>)<!>
|
||||
(a.x)(<!NO_VALUE_FOR_PARAMETER!>)<!>
|
||||
<!UNSAFE_IMPLICIT_INVOKE_CALL!>(a.x)<!>()
|
||||
if (a.x != null) {
|
||||
a.x(<!NO_VALUE_FOR_PARAMETER!>)<!> // todo
|
||||
(a.x)()
|
||||
|
||||
Reference in New Issue
Block a user