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
+3
-3
@@ -6,7 +6,7 @@ FILE: safeCalls.kt
|
||||
}
|
||||
public final fun test(x: R|kotlin/String?|): R|kotlin/Unit| {
|
||||
R|<local>/x|?.{ $subj$.R|/foo|(==(R|<local>/x|.R|kotlin/String.length|, Int(1))) }
|
||||
R|<local>/x|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/String.length>#
|
||||
R|<local>/x|.<Inapplicable(UNSAFE_CALL): kotlin/String.length>#
|
||||
}
|
||||
public abstract interface A : R|kotlin/Any| {
|
||||
public abstract fun bar(a: R|A|): R|kotlin/String|
|
||||
@@ -28,7 +28,7 @@ FILE: safeCalls.kt
|
||||
}
|
||||
public final fun test_4(x: R|A?|): R|kotlin/Unit| {
|
||||
R|<local>/x|?.{ $subj$.R|/A.id|() }?.{ $subj$.R|/A.bool|() }
|
||||
R|<local>/x|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.id>#()
|
||||
R|<local>/x|.<Inapplicable(UNSAFE_CALL): /A.id>#()
|
||||
}
|
||||
public final fun R|kotlin/Any?|.boo(b: R|kotlin/Boolean|): R|kotlin/Unit| {
|
||||
}
|
||||
@@ -37,5 +37,5 @@ FILE: safeCalls.kt
|
||||
^test_5 Unit
|
||||
}
|
||||
) }?.{ $subj$.R|/boo|(R|<local>/x|.R|/A.bool|()) }
|
||||
R|<local>/x|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.id>#()
|
||||
R|<local>/x|.<Inapplicable(UNSAFE_CALL): /A.id>#()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user