FIR checker: warn unnecessary non-null assertions

This commit is contained in:
Jinseong Jeon
2021-04-01 11:44:47 -07:00
committed by Mikhail Glukhikh
parent 5229d4e4f4
commit 2ecb6733ed
72 changed files with 268 additions and 246 deletions
@@ -11,7 +11,7 @@ fun takeB(b: B) {}
fun test_1() {
val flag = SomeEnum.A1
val b: B = when (flag!!) {
val b: B = when (flag<!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!>) {
SomeEnum.A1 -> B()
SomeEnum.A2 -> B()
}
@@ -21,7 +21,7 @@ fun test_1() {
fun test_2() {
val flag = SomeEnum.A1
val b = when (flag!!) {
val b = when (flag<!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!>) {
SomeEnum.A1 -> B()
SomeEnum.A2 -> B()
}
+3 -3
View File
@@ -16,7 +16,7 @@ fun get(f: Boolean) = if (f) {A.A1} else {""}
<!CONFLICTING_OVERLOADS!>fun case2()<!> {
val flag: Any = get(false) //string
val l1 = <!NO_ELSE_IN_WHEN!>when<!> (flag!!) { // should be NO_ELSE_IN_WHEN
val l1 = <!NO_ELSE_IN_WHEN!>when<!> (flag<!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!>) { // should be NO_ELSE_IN_WHEN
A.A1 -> B()
A.A2 -> B()
}
@@ -30,7 +30,7 @@ fun get(f: Boolean) = if (f) {A.A1} else {""}
<!CONFLICTING_OVERLOADS!>fun case2()<!> {
val flag: Any = get(true) //A
val l1 = <!NO_ELSE_IN_WHEN!>when<!> (flag!!) {// should be NO_ELSE_IN_WHEN
val l1 = <!NO_ELSE_IN_WHEN!>when<!> (flag<!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!>) {// should be NO_ELSE_IN_WHEN
A.A1 -> B()
A.A2 -> B()
}
@@ -44,7 +44,7 @@ fun get(f: Boolean) = if (f) {A.A1} else {""}
fun case3() {
val flag = "" //A
val l1 = <!NO_ELSE_IN_WHEN!>when<!> (flag!!) {// should be NO_ELSE_IN_WHEN
val l1 = <!NO_ELSE_IN_WHEN!>when<!> (flag<!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!>) {// should be NO_ELSE_IN_WHEN
A.A1 -> B() //should be INCOMPATIBLE_TYPES
A.A2 -> B() //should be INCOMPATIBLE_TYPES
}
@@ -13,7 +13,7 @@ class C(val b: B)
// TESTCASE NUMBER: 1
fun case1() {
val flag = A.A1
val l0: B = when (flag!!) {
val l0: B = when (flag<!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!>) {
A.A1 -> B()
A.A2 -> B()
}
@@ -34,7 +34,7 @@ fun case2() {
fun case3() {
val flag = A.A1
val l1 = when (flag!!) {
val l1 = when (flag<!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!>) {
A.A1 -> B()
A.A2 -> B()
}
@@ -68,7 +68,7 @@ fun case5() {
// TESTCASE NUMBER: 6
fun case6() {
val flag: Any = A.A1
val l1 = when (flag!!) {
val l1 = when (flag<!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!>) {
A.A1 -> B()
A.A2 -> B()
else -> B()
@@ -91,7 +91,7 @@ fun case7() {
// TESTCASE NUMBER: 8
fun case8() {
val flag: Any = A.A1
val l1: B = when (flag!!) {
val l1: B = when (flag<!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!>) {
A.A1 -> B()
A.A2 -> B()
else -> B()
@@ -16,5 +16,5 @@ fun foo() {
var c: MutableSet<String>? = null
c = HashSet()
c!!.d = produce()
}
c<!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!>.d = produce()
}
@@ -1,4 +1,4 @@
fun foo() {
val inv = {{}}!!
val inv = {{}}<!NOT_NULL_ASSERTION_ON_LAMBDA_EXPRESSION!>!!<!>
val bar = {{}}
}