FIR: report UNSAFE_CALL on dot when possible

This commit is contained in:
Mikhail Glukhikh
2021-01-29 10:25:59 +03:00
parent 0ee4f1f393
commit 7d4eaefd36
249 changed files with 1208 additions and 1649 deletions
@@ -5,7 +5,7 @@ fun test_1(s: String?) {
if (s?.check() == true) {
s.length // Should be OK
} else {
s.<!UNSAFE_CALL!>length<!> // Should be bad
s<!UNSAFE_CALL!>.<!>length // Should be bad
}
}
@@ -13,13 +13,13 @@ fun test_2(s: String?) {
if (s?.check() == false) {
s.length // Should be OK
} else {
s.<!UNSAFE_CALL!>length<!> // Should be bad
s<!UNSAFE_CALL!>.<!>length // Should be bad
}
}
fun test_3(s: String?) {
if (s?.check() != true) {
s.<!UNSAFE_CALL!>length<!> // Should be bad
s<!UNSAFE_CALL!>.<!>length // Should be bad
} else {
s.length // Should be OK
}
@@ -27,7 +27,7 @@ fun test_3(s: String?) {
fun test_4(s: String?) {
if (s?.check() != false) {
s.<!UNSAFE_CALL!>length<!> // Should be bad
s<!UNSAFE_CALL!>.<!>length // Should be bad
} else {
s.length // Should be OK
}
@@ -5,7 +5,7 @@ fun String.let(block: () -> Unit) {}
fun test(x: String?) {
x?.foo(x.length == 1)
x.<!UNSAFE_CALL!>length<!>
x<!UNSAFE_CALL!>.<!>length
}
interface A {
@@ -27,12 +27,12 @@ fun test_3(x: Any) {
fun test_4(x: A?) {
x?.id()?.bool()
x.<!UNSAFE_CALL{LT}!><!UNSAFE_CALL{PSI}!>id<!>()<!>
x<!UNSAFE_CALL!>.<!>id()
}
fun Any?.boo(b: Boolean) {}
fun test_5(x: A?) {
x?.let { return }?.boo(x.bool())
x.<!UNSAFE_CALL{LT}!><!UNSAFE_CALL{PSI}!>id<!>()<!>
x<!UNSAFE_CALL!>.<!>id()
}