FIR checker: warn unnecessary safe calls

This commit is contained in:
Jinseong Jeon
2021-04-01 11:55:05 -07:00
committed by Mikhail Glukhikh
parent 2ecb6733ed
commit 5a0b75bd89
65 changed files with 232 additions and 349 deletions
+4 -4
View File
@@ -27,15 +27,15 @@ fun foo(l: A<String>?) {
foo(l?.bar()) checkType { _<String?>() }
foo(l?.gav()) checkType { _<String?>() }
if (l != null) {
foo(l?.bar()) checkType { <!INAPPLICABLE_CANDIDATE!>_<!><String>() }
foo(l?.gav()) checkType { <!INAPPLICABLE_CANDIDATE!>_<!><String>() }
foo(l<!UNNECESSARY_SAFE_CALL!>?.<!>bar()) checkType { <!INAPPLICABLE_CANDIDATE!>_<!><String>() }
foo(l<!UNNECESSARY_SAFE_CALL!>?.<!>gav()) checkType { <!INAPPLICABLE_CANDIDATE!>_<!><String>() }
}
}
fun fooNotNull(l: A<String>) {
// No errors should be here
foo(l?.bar()) checkType { <!INAPPLICABLE_CANDIDATE!>_<!><String>() }
foo(l?.gav()) checkType { <!INAPPLICABLE_CANDIDATE!>_<!><String>() }
foo(l<!UNNECESSARY_SAFE_CALL!>?.<!>bar()) checkType { <!INAPPLICABLE_CANDIDATE!>_<!><String>() }
foo(l<!UNNECESSARY_SAFE_CALL!>?.<!>gav()) checkType { <!INAPPLICABLE_CANDIDATE!>_<!><String>() }
}
fun bar() {
@@ -13,7 +13,7 @@ fun <T : CharSequence?> foo(x: T) {
if (x != null) {}
x.length
x?.length
x<!UNNECESSARY_SAFE_CALL!>?.<!>length
x.bar1()
x.bar2()
@@ -21,14 +21,14 @@ fun <T : CharSequence?> foo(x: T) {
x.bar4()
x?.bar1()
x<!UNNECESSARY_SAFE_CALL!>?.<!>bar1()
}
x.<!INAPPLICABLE_CANDIDATE!>length<!>
if (x is String) {
x.length
x?.length
x<!UNNECESSARY_SAFE_CALL!>?.<!>length
x.bar1()
x.bar2()
@@ -37,7 +37,7 @@ fun <T : CharSequence?> foo(x: T) {
if (x is CharSequence) {
x.length
x?.length
x<!UNNECESSARY_SAFE_CALL!>?.<!>length
x.bar1()
x.bar2()
@@ -12,7 +12,7 @@ fun <T : String?> T.foo() {
if (this != null) {}
length
this?.length
this<!UNNECESSARY_SAFE_CALL!>?.<!>length
bar1()
bar2()
@@ -20,14 +20,14 @@ fun <T : String?> T.foo() {
bar4()
this?.bar1()
this<!UNNECESSARY_SAFE_CALL!>?.<!>bar1()
}
<!INAPPLICABLE_CANDIDATE!>length<!>
if (this is String) {
length
this?.length
this<!UNNECESSARY_SAFE_CALL!>?.<!>length
bar1()
bar2()