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
@@ -46,7 +46,7 @@ fun case_1(value_1: Int?) {
if (contracts.case_1(value_1) { value_2 = 10 }) {
println(<!UNINITIALIZED_VARIABLE!>value_2<!>)
} else {
value_1.<!UNSAFE_CALL!>inv<!>()
value_1<!UNSAFE_CALL!>.<!>inv()
println(<!UNINITIALIZED_VARIABLE!>value_2<!>)
}
}
@@ -58,8 +58,8 @@ fun case_2(value_1: Int?, value_2: Int?, value_3: Any?) {
true -> {
<!AMBIGUITY!>println<!>(value_3?.<!UNRESOLVED_REFERENCE!>xor<!>(true))
println(<!UNINITIALIZED_VARIABLE!>value_4<!>)
println(value_1.<!UNSAFE_CALL!>inv<!>())
println(value_2.<!UNSAFE_CALL!>inv<!>())
println(value_1<!UNSAFE_CALL!>.<!>inv())
println(value_2<!UNSAFE_CALL!>.<!>inv())
}
false -> {
println(<!UNINITIALIZED_VARIABLE!>value_4<!>)
@@ -11,13 +11,13 @@ fun case_1(value_1: Any?) {
// TESTCASE NUMBER: 2
fun case_2(value_1: Int?) {
funWithReturnsAndInvertCondition(value_1 != null)
println(value_1.<!UNSAFE_CALL!>inc<!>())
println(value_1<!UNSAFE_CALL!>.<!>inc())
}
// TESTCASE NUMBER: 3
fun case_3(value_1: Int?) {
funWithReturns(value_1 == null)
println(value_1.<!UNSAFE_CALL!>inc<!>())
println(value_1<!UNSAFE_CALL!>.<!>inc())
}
// TESTCASE NUMBER: 4
@@ -29,13 +29,13 @@ fun case_4(value_1: Any?) {
// TESTCASE NUMBER: 5
fun case_5(value_1: String?) {
funWithReturnsAndNullCheck(value_1)
println(value_1.<!UNSAFE_CALL!>length<!>)
println(value_1<!UNSAFE_CALL!>.<!>length)
}
// TESTCASE NUMBER: 6
fun case_6(value_1: String?) {
funWithReturnsAndNullCheck(value_1)
println(value_1.<!UNSAFE_CALL!>length<!>)
println(value_1<!UNSAFE_CALL!>.<!>length)
}
// TESTCASE NUMBER: 7
@@ -44,7 +44,7 @@ object case_7_object {
}
fun case_7() {
funWithReturns(case_7_object.prop_1 == null)
case_7_object.prop_1.<!UNSAFE_CALL!>inc<!>()
case_7_object.prop_1<!UNSAFE_CALL!>.<!>inc()
}
// TESTCASE NUMBER: 8
@@ -61,14 +61,14 @@ fun case_8(value_1: Any?) {
// TESTCASE NUMBER: 9
fun case_9(value_1: String?) {
if (!funWithReturnsTrue(value_1 != null)) println(value_1.<!UNSAFE_CALL!>length<!>)
if (!funWithReturnsTrueAndInvertCondition(value_1 == null)) println(value_1.<!UNSAFE_CALL!>length<!>)
if (funWithReturnsFalse(value_1 != null)) println(value_1.<!UNSAFE_CALL!>length<!>)
if (funWithReturnsFalseAndInvertCondition(value_1 == null)) println(value_1.<!UNSAFE_CALL!>length<!>)
if (funWithReturnsNotNull(value_1 != null) == null) println(value_1.<!UNSAFE_CALL!>length<!>)
if (funWithReturnsNotNullAndInvertCondition(value_1 == null) == null) println(value_1.<!UNSAFE_CALL!>length<!>)
if (funWithReturnsNull(value_1 != null) != null) println(value_1.<!UNSAFE_CALL!>length<!>)
if (funWithReturnsNullAndInvertCondition(value_1 == null) != null) println(value_1.<!UNSAFE_CALL!>length<!>)
if (!funWithReturnsTrue(value_1 != null)) println(value_1<!UNSAFE_CALL!>.<!>length)
if (!funWithReturnsTrueAndInvertCondition(value_1 == null)) println(value_1<!UNSAFE_CALL!>.<!>length)
if (funWithReturnsFalse(value_1 != null)) println(value_1<!UNSAFE_CALL!>.<!>length)
if (funWithReturnsFalseAndInvertCondition(value_1 == null)) println(value_1<!UNSAFE_CALL!>.<!>length)
if (funWithReturnsNotNull(value_1 != null) == null) println(value_1<!UNSAFE_CALL!>.<!>length)
if (funWithReturnsNotNullAndInvertCondition(value_1 == null) == null) println(value_1<!UNSAFE_CALL!>.<!>length)
if (funWithReturnsNull(value_1 != null) != null) println(value_1<!UNSAFE_CALL!>.<!>length)
if (funWithReturnsNullAndInvertCondition(value_1 == null) != null) println(value_1<!UNSAFE_CALL!>.<!>length)
}
// TESTCASE NUMBER: 10
@@ -83,14 +83,14 @@ fun case_10(value_1: Any?) {
// TESTCASE NUMBER: 11
fun case_11(value_1: Number?) {
if (!funWithReturnsTrueAndNotNullCheck(value_1)) println(value_1.<!UNSAFE_CALL!>toByte<!>())
if (!funWithReturnsTrueAndNotNullCheck(value_1)) println(value_1<!UNSAFE_CALL!>.<!>toByte())
if (!funWithReturnsTrueAndNullCheck(value_1)) println(value_1)
if (funWithReturnsFalseAndNotNullCheck(value_1)) println(value_1.<!UNSAFE_CALL!>toByte<!>())
if (funWithReturnsFalseAndNotNullCheck(value_1)) println(value_1<!UNSAFE_CALL!>.<!>toByte())
if (funWithReturnsFalseAndNullCheck(value_1)) println(value_1)
if ((funWithReturnsNotNullAndNotNullCheck(value_1) == null)) println(value_1.<!UNSAFE_CALL!>toByte<!>())
if (!!!(funWithReturnsNotNullAndNotNullCheck(value_1) != null)) println(value_1.<!UNSAFE_CALL!>toByte<!>())
if ((funWithReturnsNotNullAndNotNullCheck(value_1) == null)) println(value_1<!UNSAFE_CALL!>.<!>toByte())
if (!!!(funWithReturnsNotNullAndNotNullCheck(value_1) != null)) println(value_1<!UNSAFE_CALL!>.<!>toByte())
if (!!(funWithReturnsNotNullAndNullCheck(value_1) == null)) println(value_1)
if (!(funWithReturnsNullAndNotNullCheck(value_1) == null)) println(value_1.<!UNSAFE_CALL!>toByte<!>())
if (!!(funWithReturnsNullAndNotNullCheck(value_1) != null)) println(value_1.<!UNSAFE_CALL!>toByte<!>())
if (!(funWithReturnsNullAndNotNullCheck(value_1) == null)) println(value_1<!UNSAFE_CALL!>.<!>toByte())
if (!!(funWithReturnsNullAndNotNullCheck(value_1) != null)) println(value_1<!UNSAFE_CALL!>.<!>toByte())
if (!!!(funWithReturnsNullAndNullCheck(value_1) == null)) println(value_1)
}
@@ -213,7 +213,7 @@ fun case_2(value_1: Any?) {
// TESTCASE NUMBER: 3
fun case_3(number: Int?) {
if (!funWithReturnsTrueAndNullCheck(number)) number.<!UNSAFE_CALL!>inc<!>()
if (!funWithReturnsTrueAndNullCheck(number)) number<!UNSAFE_CALL!>.<!>inc()
}
// TESTCASE NUMBER: 4
@@ -250,8 +250,8 @@ fun case_8(value_1: Any?) {
// TESTCASE NUMBER: 9
fun case_9(value_1: Number?) {
if (!funWithReturnsTrueAndNullCheck(value_1)) println(value_1.<!UNSAFE_CALL!>toByte<!>())
if (funWithReturnsFalseAndNullCheck(value_1)) println(value_1.<!UNSAFE_CALL!>toByte<!>())
if (!funWithReturnsTrueAndNullCheck(value_1)) println(value_1<!UNSAFE_CALL!>.<!>toByte())
if (funWithReturnsFalseAndNullCheck(value_1)) println(value_1<!UNSAFE_CALL!>.<!>toByte())
if (funWithReturnsFalseAndNotNullCheck(value_1)) println(value_1)
if (!(funWithReturnsNotNullAndNullCheck(value_1) != null)) println(value_1)
if (!(funWithReturnsNullAndNullCheck(value_1) == null)) println(value_1)
@@ -458,9 +458,9 @@ fun case_19(value_1: Number) {
// TESTCASE NUMBER: 20
fun case_20(value_1: String?, value_2: String?, value_3: String?, value_4: String?) {
if (!value_1.case_20_1()) println(value_1)
if (!value_2.case_20_2()) println(value_2.<!UNSAFE_CALL!>length<!>)
if (!value_2.case_20_2()) println(value_2<!UNSAFE_CALL!>.<!>length)
when (value_3.case_20_3()) {
true -> println(value_4.<!UNSAFE_CALL!>length<!>)
true -> println(value_4<!UNSAFE_CALL!>.<!>length)
false -> println(value_3)
}
}
@@ -468,13 +468,13 @@ fun case_20(value_1: String?, value_2: String?, value_3: String?, value_4: Strin
// TESTCASE NUMBER: 21
fun case_21(value_1: String?) {
when { !value_1.case_21_1() -> println(value_1) }
when { !value_1.case_21_2() -> println(value_1.<!UNSAFE_CALL!>length<!>) }
when { !value_1.case_21_2() -> println(value_1<!UNSAFE_CALL!>.<!>length) }
when {
value_1.case_21_5() == null -> println(value_1.<!UNSAFE_CALL!>length<!>)
value_1.case_21_5() == null -> println(value_1<!UNSAFE_CALL!>.<!>length)
value_1.case_21_5() != null -> println(value_1)
}
when {
value_1.case_21_7() != null -> println(value_1.<!UNSAFE_CALL!>length<!>)
value_1.case_21_7() != null -> println(value_1<!UNSAFE_CALL!>.<!>length)
value_1.case_21_7() == null -> println(value_1)
}
}
@@ -505,19 +505,19 @@ fun case_25(value_1: Any?, value_2: Int?, value_3: Any?, value_4: Int?) {
when {
value_1.case_25_1(value_2) -> {
<!AMBIGUITY!>println<!>(value_1.<!UNRESOLVED_REFERENCE!>length<!>)
println(value_2.<!UNSAFE_CALL!>inv<!>())
println(value_2<!UNSAFE_CALL!>.<!>inv())
}
}
when {
value_3.case_25_2(value_4) == null -> {
<!AMBIGUITY!>println<!>(value_3.<!UNRESOLVED_REFERENCE!>length<!>)
println(value_4.<!UNSAFE_CALL!>inv<!>())
println(value_4<!UNSAFE_CALL!>.<!>inv())
}
}
when {
value_3.case_25_3(value_4) != null -> {
<!AMBIGUITY!>println<!>(value_3.<!UNRESOLVED_REFERENCE!>length<!>)
println(value_4.<!UNSAFE_CALL!>inv<!>())
println(value_4<!UNSAFE_CALL!>.<!>inv())
}
}
}
@@ -44,6 +44,6 @@ fun case_2(value: Any) {
// TESTCASE NUMBER: 3
fun case_3(value: String?) {
if (!value.isNullOrEmpty() is Boolean) {
value.<!UNSAFE_CALL!>length<!>
value<!UNSAFE_CALL!>.<!>length
}
}
@@ -152,7 +152,7 @@ fun case_2(value_1: Number) {
// TESTCASE NUMBER: 3
fun case_3(value_1: String?, value_2: String?) {
value_1.case_3_1()
println(value_1.<!UNSAFE_CALL!>length<!>)
println(value_1<!UNSAFE_CALL!>.<!>length)
value_2.case_3_2()
println(value_2)
}
@@ -160,7 +160,7 @@ fun case_3(value_1: String?, value_2: String?) {
// TESTCASE NUMBER: 4
fun case_4(value_1: String?, value_2: String?) {
value_1.case_4_1()
println(value_1.<!UNSAFE_CALL!>length<!>)
println(value_1<!UNSAFE_CALL!>.<!>length)
value_2.case_4_2()
println(value_2)
}
@@ -183,7 +183,7 @@ fun case_6(value_1: Number) {
// TESTCASE NUMBER: 7
fun case_7(value_1: String?, value_2: String?) {
if (value_1.case_7_1()) println(value_1.<!UNSAFE_CALL!>length<!>)
if (value_1.case_7_1()) println(value_1<!UNSAFE_CALL!>.<!>length)
if (value_2.case_7_2()) println(value_2)
if (!(value_2.case_7_3() == null)) println(value_2)
if (value_2.case_7_3() == null) println(value_2)
@@ -191,7 +191,7 @@ fun case_7(value_1: String?, value_2: String?) {
// TESTCASE NUMBER: 8
fun case_8(value_1: String?, value_2: String?) {
when { value_1.case_8_1() -> println(value_1.<!UNSAFE_CALL!>length<!>) }
when { value_1.case_8_1() -> println(value_1<!UNSAFE_CALL!>.<!>length) }
when { value_2.case_8_2() -> println(value_2) }
when { !(value_2.case_8_3() == null) -> println(value_2) }
when { value_2.case_8_3() == null -> println(value_2) }
@@ -199,13 +199,13 @@ fun case_8(value_1: String?, value_2: String?) {
// TESTCASE NUMBER: 9
fun case_9(value_1: Number?) {
if (value_1?.case_9() == null) println(value_1.<!UNSAFE_CALL!>toByte<!>())
if (value_1?.case_9() == null) println(value_1<!UNSAFE_CALL!>.<!>toByte())
}
// TESTCASE NUMBER: 10
fun case_10(value_1: Number?) {
if (value_1?.case_10() == null) {
println(value_1.<!UNSAFE_CALL!>toByte<!>())
println(value_1<!UNSAFE_CALL!>.<!>toByte())
} else {
println(value_1.toByte())
}
@@ -217,13 +217,13 @@ fun case_10(value_1: Number?) {
*/
fun case_11(value_1: Number?, value_2: Number?) {
if (value_1?.case_11_1() == null) {
println(value_1.<!UNSAFE_CALL!>toByte<!>())
println(value_1<!UNSAFE_CALL!>.<!>toByte())
} else {
println(value_1.toByte())
}
if (value_2?.case_11_2() != null) {
println(value_2.toByte())
} else {
println(value_2.<!UNSAFE_CALL!>toByte<!>())
println(value_2<!UNSAFE_CALL!>.<!>toByte())
}
}
@@ -111,7 +111,7 @@ import contracts.*
fun case_1(value_1: Any?, value_2: Int?) {
value_1.case_1(value_2)
<!AMBIGUITY!>println<!>(value_1.<!UNRESOLVED_REFERENCE!>length<!>)
println(value_2.<!UNSAFE_CALL!>inv<!>())
println(value_2<!UNSAFE_CALL!>.<!>inv())
}
// TESTCASE NUMBER: 2
@@ -125,7 +125,7 @@ fun case_2(value_1: Number?, value_2: Any?) {
fun case_3(value_1: Any?, value_2: String?) {
value_1.case_3(value_2)
<!AMBIGUITY!>println<!>(value_1.<!UNRESOLVED_REFERENCE!>inv<!>())
println(value_2.<!UNSAFE_CALL!>length<!>)
println(value_2<!UNSAFE_CALL!>.<!>length)
}
// TESTCASE NUMBER: 4
@@ -133,7 +133,7 @@ fun case_4(value_1: Any?, value_2: Number, value_3: Any?, value_4: String?) {
value_1.case_4(value_2, value_3, value_4)
<!AMBIGUITY!>println<!>(value_2.<!UNRESOLVED_REFERENCE!>inv<!>())
<!AMBIGUITY!>println<!>(value_3.<!UNRESOLVED_REFERENCE!>toByte<!>())
println(value_4.<!UNSAFE_CALL!>length<!>)
println(value_4<!UNSAFE_CALL!>.<!>length)
}
// TESTCASE NUMBER: 5
@@ -141,19 +141,19 @@ fun case_5(value_1: Any?, value_2: Int?, value_3: Any?, value_4: Int?, value_5:
when {
value_1.case_5_1(value_2) -> {
<!AMBIGUITY!>println<!>(value_1.<!UNRESOLVED_REFERENCE!>length<!>)
println(value_2.<!UNSAFE_CALL!>inv<!>())
println(value_2<!UNSAFE_CALL!>.<!>inv())
}
}
when {
!value_3.case_5_2(value_4) -> {
<!AMBIGUITY!>println<!>(value_3.<!UNRESOLVED_REFERENCE!>length<!>)
println(value_4.<!UNSAFE_CALL!>inv<!>())
println(value_4<!UNSAFE_CALL!>.<!>inv())
}
}
when {
value_5.case_5_3(value_6) != null -> {
<!AMBIGUITY!>println<!>(value_5.<!UNRESOLVED_REFERENCE!>length<!>)
println(value_6.<!UNSAFE_CALL!>inv<!>())
println(value_6<!UNSAFE_CALL!>.<!>inv())
}
}
}
@@ -182,19 +182,19 @@ fun case_6(value_1: Number?, value_2: Any?, value_3: Number?, value_4: Any?, val
fun case_7(value_1: Any?, value_2: String?, value_3: Any?, value_4: String?, value_5: Any?, value_6: String?) {
if (value_1.case_7_1(value_2)) {
<!AMBIGUITY!>println<!>(value_1.<!UNRESOLVED_REFERENCE!>inv<!>())
println(value_2.<!UNSAFE_CALL!>length<!>)
println(value_2<!UNSAFE_CALL!>.<!>length)
}
if (value_3.case_7_2(value_4)) {
<!AMBIGUITY!>println<!>(value_3.<!UNRESOLVED_REFERENCE!>inv<!>())
println(value_4.<!UNSAFE_CALL!>length<!>)
println(value_4<!UNSAFE_CALL!>.<!>length)
}
if (value_5.case_7_3(value_6) != null) {
<!AMBIGUITY!>println<!>(value_5.<!UNRESOLVED_REFERENCE!>inv<!>())
println(value_6.<!UNSAFE_CALL!>length<!>)
println(value_6<!UNSAFE_CALL!>.<!>length)
}
if (value_5.case_7_4(value_6) == null) {
<!AMBIGUITY!>println<!>(value_5.<!UNRESOLVED_REFERENCE!>inv<!>())
println(value_6.<!UNSAFE_CALL!>length<!>)
println(value_6<!UNSAFE_CALL!>.<!>length)
}
}
@@ -202,14 +202,14 @@ fun case_7(value_1: Any?, value_2: String?, value_3: Any?, value_4: String?, val
fun case_8(value_1: Any?, value_2: Number, value_3: Any?, value_4: String?) {
when { value_1.case_8_1(value_2, value_3, value_4) -> <!AMBIGUITY!>println<!>(value_2.<!UNRESOLVED_REFERENCE!>inv<!>()) }
when { value_1.case_8_1(value_2, value_3, value_4) -> <!AMBIGUITY!>println<!>(value_3.<!UNRESOLVED_REFERENCE!>toByte<!>()) }
when { value_1.case_8_1(value_2, value_3, value_4) -> println(value_4.<!UNSAFE_CALL!>length<!>) }
when { value_1.case_8_1(value_2, value_3, value_4) -> println(value_4<!UNSAFE_CALL!>.<!>length) }
when { !value_1.case_8_2(value_2, value_3, value_4) -> <!AMBIGUITY!>println<!>(value_2.<!UNRESOLVED_REFERENCE!>inv<!>()) }
when { !value_1.case_8_2(value_2, value_3, value_4) -> <!AMBIGUITY!>println<!>(value_3.<!UNRESOLVED_REFERENCE!>toByte<!>()) }
when { !value_1.case_8_2(value_2, value_3, value_4) -> println(value_4.<!UNSAFE_CALL!>length<!>) }
when { !value_1.case_8_2(value_2, value_3, value_4) -> println(value_4<!UNSAFE_CALL!>.<!>length) }
when { value_1.case_8_3(value_2, value_3, value_4) == null -> <!AMBIGUITY!>println<!>(value_2.<!UNRESOLVED_REFERENCE!>inv<!>()) }
when { value_1.case_8_3(value_2, value_3, value_4) == null -> <!AMBIGUITY!>println<!>(value_3.<!UNRESOLVED_REFERENCE!>toByte<!>()) }
when { value_1.case_8_3(value_2, value_3, value_4) == null -> println(value_4.<!UNSAFE_CALL!>length<!>) }
when { value_1.case_8_3(value_2, value_3, value_4) == null -> println(value_4<!UNSAFE_CALL!>.<!>length) }
when { value_1.case_8_4(value_2, value_3, value_4) != null -> <!AMBIGUITY!>println<!>(value_2.<!UNRESOLVED_REFERENCE!>inv<!>()) }
when { value_1.case_8_4(value_2, value_3, value_4) != null -> <!AMBIGUITY!>println<!>(value_3.<!UNRESOLVED_REFERENCE!>toByte<!>()) }
when { value_1.case_8_4(value_2, value_3, value_4) != null -> println(value_4.<!UNSAFE_CALL!>length<!>) }
when { value_1.case_8_4(value_2, value_3, value_4) != null -> println(value_4<!UNSAFE_CALL!>.<!>length) }
}
@@ -210,7 +210,7 @@ import contracts.*
// TESTCASE NUMBER: 1
fun case_1(value_1: Int?) {
case_1_1(value_1)
value_1.<!UNSAFE_CALL!>inv<!>()
value_1<!UNSAFE_CALL!>.<!>inv()
case_1_2(value_1)
value_1.inv()
case_1_1(value_1)
@@ -220,7 +220,7 @@ fun case_1(value_1: Int?) {
// TESTCASE NUMBER: 2
fun case_2(value_1: Number?) {
case_2_1(value_1)
value_1.<!UNSAFE_CALL!>toByte<!>()
value_1<!UNSAFE_CALL!>.<!>toByte()
case_2_2(value_1)
value_1.<!UNRESOLVED_REFERENCE!>inv<!>()
}
@@ -246,7 +246,7 @@ fun case_4(value_1: Any?) {
// TESTCASE NUMBER: 5
fun case_5(value_1: Int?) {
if (case_5_1(value_1)) {
value_1.<!UNSAFE_CALL!>inv<!>()
value_1<!UNSAFE_CALL!>.<!>inv()
if (case_5_2(value_1)) {
value_1.inv()
case_5_1(value_1)
@@ -254,7 +254,7 @@ fun case_5(value_1: Int?) {
}
}
if (!case_5_3(value_1)) {
value_1.<!UNSAFE_CALL!>inv<!>()
value_1<!UNSAFE_CALL!>.<!>inv()
if (!case_5_4(value_1)) {
value_1.inv()
case_5_1(value_1)
@@ -262,7 +262,7 @@ fun case_5(value_1: Int?) {
}
}
if (case_5_5(value_1) != null) {
value_1.<!UNSAFE_CALL!>inv<!>()
value_1<!UNSAFE_CALL!>.<!>inv()
if (case_5_6(value_1) != null) {
value_1.inv()
case_5_1(value_1)
@@ -270,7 +270,7 @@ fun case_5(value_1: Int?) {
}
}
if (case_5_7(value_1) == null) {
value_1.<!UNSAFE_CALL!>inv<!>()
value_1<!UNSAFE_CALL!>.<!>inv()
if (case_5_8(value_1) == null) {
value_1.inv()
case_5_1(value_1)
@@ -283,25 +283,25 @@ fun case_5(value_1: Int?) {
fun case_6(value_1: Number?) {
when {
case_6_1(value_1) -> {
value_1.<!UNSAFE_CALL!>toByte<!>()
value_1<!UNSAFE_CALL!>.<!>toByte()
when { case_6_2(value_1) -> value_1.<!UNRESOLVED_REFERENCE!>inv<!>() }
}
}
when {
!case_6_3(value_1) -> {
value_1.<!UNSAFE_CALL!>toByte<!>()
value_1<!UNSAFE_CALL!>.<!>toByte()
when { !case_6_4(value_1) -> value_1.<!UNRESOLVED_REFERENCE!>inv<!>() }
}
}
when {
case_6_5(value_1) != null -> {
value_1.<!UNSAFE_CALL!>toByte<!>()
value_1<!UNSAFE_CALL!>.<!>toByte()
when { case_6_6(value_1) != null -> value_1.<!UNRESOLVED_REFERENCE!>inv<!>() }
}
}
when {
case_6_7(value_1) == null -> {
value_1.<!UNSAFE_CALL!>toByte<!>()
value_1<!UNSAFE_CALL!>.<!>toByte()
when { case_6_8(value_1) == null -> value_1.<!UNRESOLVED_REFERENCE!>inv<!>() }
}
}
@@ -103,11 +103,11 @@ fun case_4(value_1: Number, value_2: (() -> Unit)?) {
fun case_5(value_1: Number?, value_2: String?) {
when (value_2.case_5(value_1)) {
true -> {
println(value_2.<!UNSAFE_CALL!>length<!>)
println(value_2<!UNSAFE_CALL!>.<!>length)
println(value_1.toByte())
}
false -> {
println(value_2.<!UNSAFE_CALL!>length<!>)
println(value_2<!UNSAFE_CALL!>.<!>length)
<!AMBIGUITY!>println<!>(value_1.<!UNRESOLVED_REFERENCE!>inv<!>())
}
}
@@ -118,11 +118,11 @@ fun case_6(value_1: Number, value_2: String?, value_3: Any?) {
when (value_3.case_6(value_1, value_2)) {
true -> {
println(value_3.equals(""))
println(value_2.<!UNSAFE_CALL!>length<!>)
println(value_2<!UNSAFE_CALL!>.<!>length)
}
false -> {
<!AMBIGUITY!>println<!>(value_3.<!UNRESOLVED_REFERENCE!>length<!>)
println(value_2.<!UNSAFE_CALL!>length<!>)
println(value_2<!UNSAFE_CALL!>.<!>length)
}
null -> {
println(value_1.inv())
@@ -4,25 +4,25 @@
// TESTCASE NUMBER: 1
fun case_1(arg: Int?) {
funWithAtMostOnceCallsInPlace { arg!! }
arg.<!UNSAFE_CALL!>inc<!>()
arg<!UNSAFE_CALL!>.<!>inc()
}
// TESTCASE NUMBER: 2
fun case_2(arg: Int?) {
funWithUnknownCallsInPlace { arg!! }
arg.<!UNSAFE_CALL!>inc<!>()
arg<!UNSAFE_CALL!>.<!>inc()
}
// TESTCASE NUMBER: 3
fun case_3() {
val value_1: Boolean?
funWithAtMostOnceCallsInPlace { value_1 = false }
<!UNINITIALIZED_VARIABLE!>value_1<!>.<!UNSAFE_CALL!>not<!>()
<!UNINITIALIZED_VARIABLE!>value_1<!><!UNSAFE_CALL!>.<!>not()
}
// TESTCASE NUMBER: 4
fun case_4() {
val value_1: Boolean?
funWithUnknownCallsInPlace { value_1 = true }
<!UNINITIALIZED_VARIABLE!>value_1<!>.<!UNSAFE_CALL!>not<!>()
<!UNINITIALIZED_VARIABLE!>value_1<!><!UNSAFE_CALL!>.<!>not()
}
@@ -10,7 +10,7 @@ fun case_1(arg: Int?) {
// TESTCASE NUMBER: 2
fun case_2(arg: Int?) {
funWithAtLeastOnceCallsInPlace { arg!! }
arg.<!UNSAFE_CALL!>inc<!>()
arg<!UNSAFE_CALL!>.<!>inc()
}
// TESTCASE NUMBER: 3
@@ -24,5 +24,5 @@ fun case_3() {
fun case_4() {
val value_1: Boolean?
funWithAtLeastOnceCallsInPlace { value_1 = true }
value_1.<!UNSAFE_CALL!>not<!>()
value_1<!UNSAFE_CALL!>.<!>not()
}
@@ -49,21 +49,21 @@ import contracts.*
// TESTCASE NUMBER: 1
fun case_1(value_1: Int?) {
if (contracts.case_1(value_1)!!) {
value_1.<!UNSAFE_CALL!>inv<!>()
value_1<!UNSAFE_CALL!>.<!>inv()
}
}
// TESTCASE NUMBER: 2
fun case_2(value_1: Int?) {
if (!contracts.case_2(value_1)!!) {
value_1.<!UNSAFE_CALL!>inv<!>()
value_1<!UNSAFE_CALL!>.<!>inv()
}
}
// TESTCASE NUMBER: 3
fun case_3(value_1: Int?) {
if (contracts.case_3(value_1)!!) {
value_1.<!UNSAFE_CALL!>inv<!>()
value_1<!UNSAFE_CALL!>.<!>inv()
}
}
@@ -110,7 +110,7 @@ import contracts.*
fun case_1(value_1: Any?, value_2: Int?) {
value_1.case_1(value_2)
<!AMBIGUITY!>println<!>(value_1.<!UNRESOLVED_REFERENCE!>length<!>)
println(value_2.<!UNSAFE_CALL!>inv<!>())
println(value_2<!UNSAFE_CALL!>.<!>inv())
}
// TESTCASE NUMBER: 2
@@ -124,7 +124,7 @@ fun case_2(value_1: Number?, value_2: Any?) {
fun case_3(value_1: Any?, value_2: String?) {
value_1.case_3(value_2)
<!AMBIGUITY!>println<!>(value_1.<!UNRESOLVED_REFERENCE!>inv<!>())
println(value_2.<!UNSAFE_CALL!>length<!>)
println(value_2<!UNSAFE_CALL!>.<!>length)
}
// TESTCASE NUMBER: 4
@@ -132,7 +132,7 @@ fun case_4(value_1: Any?, value_2: Number, value_3: Any?, value_4: String?) {
value_1.case_4(value_2, value_3, value_4)
<!AMBIGUITY!>println<!>(value_2.<!UNRESOLVED_REFERENCE!>inv<!>())
<!AMBIGUITY!>println<!>(value_3.<!UNRESOLVED_REFERENCE!>toByte<!>())
println(value_4.<!UNSAFE_CALL!>length<!>)
println(value_4<!UNSAFE_CALL!>.<!>length)
}
// TESTCASE NUMBER: 5
@@ -140,25 +140,25 @@ fun case_5(value_1: Any?, value_2: Int?, value_3: Any?, value_4: Int?, value_5:
when {
value_1.case_5_1(value_2) -> {
<!AMBIGUITY!>println<!>(value_1.<!UNRESOLVED_REFERENCE!>length<!>)
println(value_2.<!UNSAFE_CALL!>inv<!>())
println(value_2<!UNSAFE_CALL!>.<!>inv())
}
}
when {
!value_3.case_5_2(value_4) -> {
<!AMBIGUITY!>println<!>(value_3.<!UNRESOLVED_REFERENCE!>length<!>)
println(value_4.<!UNSAFE_CALL!>inv<!>())
println(value_4<!UNSAFE_CALL!>.<!>inv())
}
}
when {
value_5.case_5_3(value_6) != null -> {
<!AMBIGUITY!>println<!>(value_5.<!UNRESOLVED_REFERENCE!>length<!>)
println(value_6.<!UNSAFE_CALL!>inv<!>())
println(value_6<!UNSAFE_CALL!>.<!>inv())
}
}
when {
value_5.case_5_4(value_6) == null -> {
<!AMBIGUITY!>println<!>(value_5.<!UNRESOLVED_REFERENCE!>length<!>)
println(value_6.<!UNSAFE_CALL!>inv<!>())
println(value_6<!UNSAFE_CALL!>.<!>inv())
}
}
}
@@ -187,19 +187,19 @@ fun case_6(value_1: Number?, value_2: Any?, value_3: Number?, value_4: Any?, val
fun case_7(value_1: Any?, value_2: String?, value_3: Any?, value_4: String?, value_5: Any?, value_6: String?) {
if (value_1.case_7_1(value_2)) {
<!AMBIGUITY!>println<!>(value_1.<!UNRESOLVED_REFERENCE!>inv<!>())
println(value_2.<!UNSAFE_CALL!>length<!>)
println(value_2<!UNSAFE_CALL!>.<!>length)
}
if (value_3.case_7_2(value_4)) {
<!AMBIGUITY!>println<!>(value_3.<!UNRESOLVED_REFERENCE!>inv<!>())
println(value_4.<!UNSAFE_CALL!>length<!>)
println(value_4<!UNSAFE_CALL!>.<!>length)
}
if (value_5.case_7_3(value_6) != null) {
<!AMBIGUITY!>println<!>(value_5.<!UNRESOLVED_REFERENCE!>inv<!>())
println(value_6.<!UNSAFE_CALL!>length<!>)
println(value_6<!UNSAFE_CALL!>.<!>length)
}
if (value_5.case_7_4(value_6) == null) {
<!AMBIGUITY!>println<!>(value_5.<!UNRESOLVED_REFERENCE!>inv<!>())
println(value_6.<!UNSAFE_CALL!>length<!>)
println(value_6<!UNSAFE_CALL!>.<!>length)
}
}
@@ -207,14 +207,14 @@ fun case_7(value_1: Any?, value_2: String?, value_3: Any?, value_4: String?, val
fun case_8(value_1: Any?, value_2: Number, value_3: Any?, value_4: String?, value_5: Any?, value_6: Number, value_7: Any?, value_8: String?) {
when { value_1.case_8_1(value_2, value_3, value_4) -> <!AMBIGUITY!>println<!>(value_2.<!UNRESOLVED_REFERENCE!>inv<!>()) }
when { value_1.case_8_1(value_2, value_3, value_4) -> <!AMBIGUITY!>println<!>(value_3.<!UNRESOLVED_REFERENCE!>toByte<!>()) }
when { value_1.case_8_1(value_2, value_3, value_4) -> println(value_4.<!UNSAFE_CALL!>length<!>) }
when { value_1.case_8_1(value_2, value_3, value_4) -> println(value_4<!UNSAFE_CALL!>.<!>length) }
when { !value_5.case_8_2(value_6, value_7, value_8) -> <!AMBIGUITY!>println<!>(value_6.<!UNRESOLVED_REFERENCE!>inv<!>()) }
when { !value_5.case_8_2(value_6, value_7, value_8) -> <!AMBIGUITY!>println<!>(value_7.<!UNRESOLVED_REFERENCE!>toByte<!>()) }
when { !value_5.case_8_2(value_6, value_7, value_8) -> println(value_8.<!UNSAFE_CALL!>length<!>) }
when { !value_5.case_8_2(value_6, value_7, value_8) -> println(value_8<!UNSAFE_CALL!>.<!>length) }
when { value_5.case_8_3(value_6, value_7, value_8) != null -> <!AMBIGUITY!>println<!>(value_6.<!UNRESOLVED_REFERENCE!>inv<!>()) }
when { value_5.case_8_3(value_6, value_7, value_8) != null -> <!AMBIGUITY!>println<!>(value_7.<!UNRESOLVED_REFERENCE!>toByte<!>()) }
when { value_5.case_8_3(value_6, value_7, value_8) != null -> println(value_8.<!UNSAFE_CALL!>length<!>) }
when { value_5.case_8_3(value_6, value_7, value_8) != null -> println(value_8<!UNSAFE_CALL!>.<!>length) }
when { value_5.case_8_4(value_6, value_7, value_8) == null -> <!AMBIGUITY!>println<!>(value_6.<!UNRESOLVED_REFERENCE!>inv<!>()) }
when { value_5.case_8_4(value_6, value_7, value_8) == null -> <!AMBIGUITY!>println<!>(value_7.<!UNRESOLVED_REFERENCE!>toByte<!>()) }
when { value_5.case_8_4(value_6, value_7, value_8) == null -> println(value_8.<!UNSAFE_CALL!>length<!>) }
when { value_5.case_8_4(value_6, value_7, value_8) == null -> println(value_8<!UNSAFE_CALL!>.<!>length) }
}
@@ -111,7 +111,7 @@ fun case_5(value_1: Number?, value_2: String?) {
println(value_1.toByte())
}
false -> {
println(value_2.<!UNSAFE_CALL!>length<!>)
println(value_2<!UNSAFE_CALL!>.<!>length)
println(value_1.inv())
}
}
@@ -130,7 +130,7 @@ fun case_6(value_1: Number, value_2: String?, value_3: Any?) {
}
false -> {
println(value_3.length)
println(value_2.<!UNSAFE_CALL!>length<!>)
println(value_2<!UNSAFE_CALL!>.<!>length)
}
null -> {
<!AMBIGUITY!>println<!>(value_1.<!UNRESOLVED_REFERENCE!>inv<!>())