[FIR] Add checker for uninitialized properties
This commit is contained in:
+7
-7
@@ -12,14 +12,14 @@ fun case_1() {
|
||||
fun case_2() {
|
||||
val value_1: Int
|
||||
funWithAtMostOnceCallsInPlace { value_1 = 10 }
|
||||
value_1.inc()
|
||||
<!UNINITIALIZED_VARIABLE!>value_1<!>.inc()
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 3
|
||||
fun case_3() {
|
||||
val value_1: Int
|
||||
funWithUnknownCallsInPlace { value_1 = 10 }
|
||||
value_1.inc()
|
||||
<!UNINITIALIZED_VARIABLE!>value_1<!>.inc()
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 4
|
||||
@@ -28,8 +28,8 @@ fun case_4() {
|
||||
var value_2: Int
|
||||
funWithAtMostOnceCallsInPlace { value_1 = 10 }
|
||||
funWithUnknownCallsInPlace { value_2 = 10 }
|
||||
value_1.dec()
|
||||
value_2.div(10)
|
||||
<!UNINITIALIZED_VARIABLE!>value_1<!>.dec()
|
||||
<!UNINITIALIZED_VARIABLE!>value_2<!>.div(10)
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 5
|
||||
@@ -53,7 +53,7 @@ fun case_6() {
|
||||
val value_1: Int
|
||||
for (i in 0..1)
|
||||
funWithExactlyOnceCallsInPlace { value_1 = 10 }
|
||||
value_1.dec()
|
||||
<!UNINITIALIZED_VARIABLE!>value_1<!>.dec()
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 7
|
||||
@@ -64,12 +64,12 @@ fun case_7() {
|
||||
funWithExactlyOnceCallsInPlace { value_1 = 10 }
|
||||
i++
|
||||
}
|
||||
value_1.dec()
|
||||
<!UNINITIALIZED_VARIABLE!>value_1<!>.dec()
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 8
|
||||
fun case_8() {
|
||||
var value_1: Int
|
||||
if (true) funWithAtLeastOnceCallsInPlace { value_1 = 10 }
|
||||
value_1.dec()
|
||||
<!UNINITIALIZED_VARIABLE!>value_1<!>.dec()
|
||||
}
|
||||
|
||||
+15
-15
@@ -12,11 +12,11 @@ fun case_1() {
|
||||
}
|
||||
}
|
||||
funWithExactlyOnceCallsInPlace {
|
||||
value_1.inc()
|
||||
<!UNINITIALIZED_VARIABLE!>value_1<!>.inc()
|
||||
}
|
||||
value_1.inc()
|
||||
<!UNINITIALIZED_VARIABLE!>value_1<!>.inc()
|
||||
}
|
||||
value_1.inc()
|
||||
<!UNINITIALIZED_VARIABLE!>value_1<!>.inc()
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 2
|
||||
@@ -27,14 +27,14 @@ fun case_2() {
|
||||
value_1 = 1
|
||||
}
|
||||
funWithAtLeastOnceCallsInPlace {
|
||||
value_1.inc()
|
||||
<!UNINITIALIZED_VARIABLE!>value_1<!>.inc()
|
||||
}
|
||||
funWithUnknownCallsInPlace {
|
||||
value_1.inc()
|
||||
<!UNINITIALIZED_VARIABLE!>value_1<!>.inc()
|
||||
}
|
||||
value_1.inc()
|
||||
<!UNINITIALIZED_VARIABLE!>value_1<!>.inc()
|
||||
}
|
||||
value_1.inc()
|
||||
<!UNINITIALIZED_VARIABLE!>value_1<!>.inc()
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 3
|
||||
@@ -48,11 +48,11 @@ fun case_3() {
|
||||
}
|
||||
}
|
||||
funWithExactlyOnceCallsInPlace {
|
||||
value_1.inc()
|
||||
<!UNINITIALIZED_VARIABLE!>value_1<!>.inc()
|
||||
}
|
||||
value_1.inc()
|
||||
<!UNINITIALIZED_VARIABLE!>value_1<!>.inc()
|
||||
}
|
||||
value_1.inc()
|
||||
<!UNINITIALIZED_VARIABLE!>value_1<!>.inc()
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 4
|
||||
@@ -63,15 +63,15 @@ fun case_4() {
|
||||
value_1 = 1
|
||||
}
|
||||
funWithAtLeastOnceCallsInPlace {
|
||||
value_1.inc()
|
||||
<!UNINITIALIZED_VARIABLE!>value_1<!>.inc()
|
||||
}
|
||||
funWithUnknownCallsInPlace {
|
||||
value_1.inc()
|
||||
<!UNINITIALIZED_VARIABLE!>value_1<!>.inc()
|
||||
}
|
||||
funWithExactlyOnceCallsInPlace {
|
||||
value_1.inc()
|
||||
<!UNINITIALIZED_VARIABLE!>value_1<!>.inc()
|
||||
}
|
||||
value_1.inc()
|
||||
<!UNINITIALIZED_VARIABLE!>value_1<!>.inc()
|
||||
}
|
||||
value_1.inc()
|
||||
<!UNINITIALIZED_VARIABLE!>value_1<!>.inc()
|
||||
}
|
||||
|
||||
+12
-12
@@ -12,7 +12,7 @@ fun case_1(value_1: EnumClass?) {
|
||||
null -> funWithExactlyOnceCallsInPlace { value_2 = 5 }
|
||||
}
|
||||
|
||||
value_2.inc()
|
||||
<!UNINITIALIZED_VARIABLE!>value_2<!>.inc()
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 2
|
||||
@@ -27,9 +27,9 @@ fun case_2(value_1: Any?) {
|
||||
} else {
|
||||
funWithAtMostOnceCallsInPlace { value_2 = 2 }
|
||||
}
|
||||
value_2.dec()
|
||||
<!UNINITIALIZED_VARIABLE!>value_2<!>.dec()
|
||||
}
|
||||
value_2.dec()
|
||||
<!UNINITIALIZED_VARIABLE!>value_2<!>.dec()
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 3
|
||||
@@ -65,9 +65,9 @@ fun case_4(value_1: EnumClassSingle?) {
|
||||
funWithUnknownCallsInPlace { value_2 = 2 }
|
||||
}
|
||||
}
|
||||
value_2.minus(5)
|
||||
<!UNINITIALIZED_VARIABLE!>value_2<!>.minus(5)
|
||||
}
|
||||
value_2.minus(5)
|
||||
<!UNINITIALIZED_VARIABLE!>value_2<!>.minus(5)
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 5
|
||||
@@ -80,7 +80,7 @@ fun case_5() {
|
||||
funWithAtMostOnceCallsInPlace { value_2 = 1 }
|
||||
}
|
||||
|
||||
value_2++
|
||||
<!UNINITIALIZED_VARIABLE!>value_2<!>++
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 6
|
||||
@@ -92,10 +92,10 @@ fun case_6() {
|
||||
} catch (e: Exception) {
|
||||
throw Exception()
|
||||
} finally {
|
||||
println(value_2.inc())
|
||||
println(<!UNINITIALIZED_VARIABLE!>value_2<!>.inc())
|
||||
}
|
||||
|
||||
value_2++
|
||||
<!UNINITIALIZED_VARIABLE!>value_2<!>++
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 7
|
||||
@@ -112,7 +112,7 @@ fun case_7() {
|
||||
}
|
||||
}
|
||||
|
||||
println(value_1.inc())
|
||||
println(<!UNINITIALIZED_VARIABLE!>value_1<!>.inc())
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 8
|
||||
@@ -127,7 +127,7 @@ fun case_8() {
|
||||
}
|
||||
throw Exception()
|
||||
}
|
||||
println(x.inc())
|
||||
println(<!UNINITIALIZED_VARIABLE!>x<!>.inc())
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 9
|
||||
@@ -139,7 +139,7 @@ fun case_9() {
|
||||
return@outer
|
||||
}
|
||||
}
|
||||
println(x.inc())
|
||||
println(<!UNINITIALIZED_VARIABLE!>x<!>.inc())
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 10
|
||||
@@ -156,5 +156,5 @@ fun case_10() {
|
||||
}
|
||||
return@outer
|
||||
}
|
||||
println(x.inc())
|
||||
println(<!UNINITIALIZED_VARIABLE!>x<!>.inc())
|
||||
}
|
||||
|
||||
+7
-7
@@ -8,7 +8,7 @@ fun case_1() {
|
||||
val value_1 = 10
|
||||
value_1.inc()
|
||||
}
|
||||
value_1.inc()
|
||||
<!UNINITIALIZED_VARIABLE!>value_1<!>.inc()
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 2
|
||||
@@ -24,7 +24,7 @@ fun case_2() {
|
||||
}
|
||||
value_1.inc()
|
||||
}
|
||||
value_1.inc()
|
||||
<!UNINITIALIZED_VARIABLE!>value_1<!>.inc()
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 3
|
||||
@@ -36,14 +36,14 @@ fun case_3() {
|
||||
value_1 = 10
|
||||
}
|
||||
funWithAtMostOnceCallsInPlace {
|
||||
value_1.inc()
|
||||
<!UNINITIALIZED_VARIABLE!>value_1<!>.inc()
|
||||
}
|
||||
value_1.inc()
|
||||
<!UNINITIALIZED_VARIABLE!>value_1<!>.inc()
|
||||
}
|
||||
funWithAtMostOnceCallsInPlace {
|
||||
value_1 = 10
|
||||
}
|
||||
value_1.inc()
|
||||
<!UNINITIALIZED_VARIABLE!>value_1<!>.inc()
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 4
|
||||
@@ -62,7 +62,7 @@ fun case_4() {
|
||||
funWithAtMostOnceCallsInPlace {
|
||||
value_1 = 1
|
||||
}
|
||||
value_1.dec()
|
||||
<!UNINITIALIZED_VARIABLE!>value_1<!>.dec()
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 5
|
||||
@@ -81,5 +81,5 @@ fun case_5() {
|
||||
funWithUnknownCallsInPlace {
|
||||
value_1 = 1
|
||||
}
|
||||
value_1.dec()
|
||||
<!UNINITIALIZED_VARIABLE!>value_1<!>.dec()
|
||||
}
|
||||
|
||||
+3
-3
@@ -13,7 +13,7 @@ fun case_2() {
|
||||
var value_1: Int
|
||||
val l = { value_1 = 10 }
|
||||
funWithAtLeastOnceCallsInPlace(l)
|
||||
value_1.inc()
|
||||
<!UNINITIALIZED_VARIABLE!>value_1<!>.inc()
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 3
|
||||
@@ -21,7 +21,7 @@ fun case_3() {
|
||||
var value_1: Int
|
||||
val l = fun () { value_1 = 10 }
|
||||
funWithAtLeastOnceCallsInPlace(l)
|
||||
value_1.inc()
|
||||
<!UNINITIALIZED_VARIABLE!>value_1<!>.inc()
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 4
|
||||
@@ -38,5 +38,5 @@ fun case_5() {
|
||||
fun l() { value_1 = 10 }
|
||||
}
|
||||
funWithExactlyOnceCallsInPlace(o::l)
|
||||
value_1.inc()
|
||||
<!UNINITIALIZED_VARIABLE!>value_1<!>.inc()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user