[FE] Add clear warning about future changes about nullability of safe call with non nullable receiver

^KT-46860
This commit is contained in:
Dmitriy Novozhilov
2021-10-26 17:35:31 +03:00
committed by teamcityserver
parent 937f4c1dab
commit f26059a7d3
122 changed files with 323 additions and 283 deletions
@@ -27,7 +27,7 @@ fun case_3(value_1: Any?, value_2: Any?) {
fun case_4(value_1: Any?, value_2: Number?) {
funWithReturns(value_1 is Float? && value_1 != null && value_2 != null)
println(value_1.dec())
println(value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte())
println(<!SAFE_CALL_WILL_CHANGE_NULLABILITY!>value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte()<!>)
}
// TESTCASE NUMBER: 5
@@ -38,7 +38,7 @@ class case_5_class {
val o = case_5_class()
funWithReturns(value_1 is Float? && value_1 != null && value_2 != null && o.prop_1 != null)
println(value_1.dec())
println(value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte())
println(<!SAFE_CALL_WILL_CHANGE_NULLABILITY!>value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte()<!>)
println(o.prop_1.plus(3))
}
}
@@ -107,19 +107,19 @@ fun case_8(value_1: Any?, value_2: Any?) {
fun case_9(value_1: Any?, value_2: Number?) {
if (funWithReturnsTrue(value_1 is Float? && value_1 != null && value_2 != null)) {
println(value_1.dec())
println(value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte())
println(<!SAFE_CALL_WILL_CHANGE_NULLABILITY!>value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte()<!>)
}
if (!funWithReturnsFalse(value_1 is Float? && value_1 != null && value_2 != null)) {
println(value_1.dec())
println(value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte())
println(<!SAFE_CALL_WILL_CHANGE_NULLABILITY!>value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte()<!>)
}
if (funWithReturnsNotNull(value_1 is Float? && value_1 != null && value_2 != null) != null) {
println(value_1.dec())
println(value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte())
println(<!SAFE_CALL_WILL_CHANGE_NULLABILITY!>value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte()<!>)
}
if (funWithReturnsNull(value_1 is Float? && value_1 != null && value_2 != null) == null) {
println(value_1.dec())
println(value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte())
println(<!SAFE_CALL_WILL_CHANGE_NULLABILITY!>value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte()<!>)
}
}
@@ -131,22 +131,22 @@ class case_10_class {
val o = case_10_class()
if (funWithReturnsTrue(value_1 is Float? && value_1 != null && value_2 != null && o.prop_1 != null && this.prop_1 != null)) {
println(value_1.dec())
println(value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte())
println(<!SAFE_CALL_WILL_CHANGE_NULLABILITY!>value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte()<!>)
println(o.prop_1.plus(3))
}
if (!funWithReturnsFalse(value_1 is Float? && value_1 != null && value_2 != null && o.prop_1 != null && this.prop_1 != null)) {
println(value_1.dec())
println(value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte())
println(<!SAFE_CALL_WILL_CHANGE_NULLABILITY!>value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte()<!>)
println(o.prop_1.plus(3))
}
if (funWithReturnsNotNull(value_1 is Float? && value_1 != null && value_2 != null && o.prop_1 != null && this.prop_1 != null) != null) {
println(value_1.dec())
println(value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte())
println(<!SAFE_CALL_WILL_CHANGE_NULLABILITY!>value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte()<!>)
println(o.prop_1.plus(3))
}
if (funWithReturnsNull(value_1 is Float? && value_1 != null && value_2 != null && o.prop_1 != null && this.prop_1 != null) == null) {
println(value_1.dec())
println(value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte())
println(<!SAFE_CALL_WILL_CHANGE_NULLABILITY!>value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte()<!>)
println(o.prop_1.plus(3))
}
}
@@ -160,5 +160,5 @@ class case_10_class {
fun case_11(value_1: Any?, value_2: Any?, value_3: Any?) {
funWithReturnsAndInvertCondition(value_1 !is String || value_2 !is Number || <!USELESS_IS_CHECK!>value_3 !is Any?<!>)
println(value_1<!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!>.length)
println(value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte())
println(<!SAFE_CALL_WILL_CHANGE_NULLABILITY!>value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte()<!>)
}
@@ -36,7 +36,7 @@ fun case_3(value_1: Any?, value_2: Any?) {
fun case_4(value_1: Any?, value_2: Number?) {
funWithReturns(value_1 is Float? && value_1 != null && value_2 != null)
println(<!DEBUG_INFO_SMARTCAST!>value_1<!>.dec())
println(value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte())
println(<!SAFE_CALL_WILL_CHANGE_NULLABILITY!>value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte()<!>)
}
// TESTCASE NUMBER: 5
@@ -47,7 +47,7 @@ class case_5_class {
val o = case_5_class()
funWithReturns(value_1 is Float? && value_1 != null && value_2 != null && o.prop_1 != null)
println(<!DEBUG_INFO_SMARTCAST!>value_1<!>.dec())
println(value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte())
println(<!SAFE_CALL_WILL_CHANGE_NULLABILITY!>value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte()<!>)
println(<!DEBUG_INFO_SMARTCAST!>o.prop_1<!>.plus(3))
}
}
@@ -116,19 +116,19 @@ fun case_8(value_1: Any?, value_2: Any?) {
fun case_9(value_1: Any?, value_2: Number?) {
if (funWithReturnsTrue(value_1 is Float? && value_1 != null && value_2 != null)) {
println(<!DEBUG_INFO_SMARTCAST!>value_1<!>.dec())
println(value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte())
println(<!SAFE_CALL_WILL_CHANGE_NULLABILITY!>value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte()<!>)
}
if (!funWithReturnsFalse(value_1 is Float? && value_1 != null && value_2 != null)) {
println(<!DEBUG_INFO_SMARTCAST!>value_1<!>.dec())
println(value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte())
println(<!SAFE_CALL_WILL_CHANGE_NULLABILITY!>value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte()<!>)
}
if (funWithReturnsNotNull(value_1 is Float? && value_1 != null && value_2 != null) != null) {
println(<!DEBUG_INFO_SMARTCAST!>value_1<!>.dec())
println(value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte())
println(<!SAFE_CALL_WILL_CHANGE_NULLABILITY!>value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte()<!>)
}
if (funWithReturnsNull(value_1 is Float? && value_1 != null && value_2 != null) == null) {
println(<!DEBUG_INFO_SMARTCAST!>value_1<!>.dec())
println(value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte())
println(<!SAFE_CALL_WILL_CHANGE_NULLABILITY!>value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte()<!>)
}
}
@@ -140,22 +140,22 @@ class case_10_class {
val o = case_10_class()
if (funWithReturnsTrue(value_1 is Float? && value_1 != null && value_2 != null && o.prop_1 != null && this.prop_1 != null)) {
println(<!DEBUG_INFO_SMARTCAST!>value_1<!>.dec())
println(value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte())
println(<!SAFE_CALL_WILL_CHANGE_NULLABILITY!>value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte()<!>)
println(<!DEBUG_INFO_SMARTCAST!>o.prop_1<!>.plus(3))
}
if (!funWithReturnsFalse(value_1 is Float? && value_1 != null && value_2 != null && o.prop_1 != null && this.prop_1 != null)) {
println(<!DEBUG_INFO_SMARTCAST!>value_1<!>.dec())
println(value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte())
println(<!SAFE_CALL_WILL_CHANGE_NULLABILITY!>value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte()<!>)
println(<!DEBUG_INFO_SMARTCAST!>o.prop_1<!>.plus(3))
}
if (funWithReturnsNotNull(value_1 is Float? && value_1 != null && value_2 != null && o.prop_1 != null && this.prop_1 != null) != null) {
println(<!DEBUG_INFO_SMARTCAST!>value_1<!>.dec())
println(value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte())
println(<!SAFE_CALL_WILL_CHANGE_NULLABILITY!>value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte()<!>)
println(<!DEBUG_INFO_SMARTCAST!>o.prop_1<!>.plus(3))
}
if (funWithReturnsNull(value_1 is Float? && value_1 != null && value_2 != null && o.prop_1 != null && this.prop_1 != null) == null) {
println(<!DEBUG_INFO_SMARTCAST!>value_1<!>.dec())
println(value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte())
println(<!SAFE_CALL_WILL_CHANGE_NULLABILITY!>value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte()<!>)
println(<!DEBUG_INFO_SMARTCAST!>o.prop_1<!>.plus(3))
}
}
@@ -169,5 +169,5 @@ class case_10_class {
fun case_11(value_1: Any?, value_2: Any?, value_3: Any?) {
funWithReturnsAndInvertCondition(value_1 !is String || value_2 !is Number || <!USELESS_IS_CHECK!>value_3 !is Any?<!>)
println(<!DEBUG_INFO_SMARTCAST!>value_1<!><!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!>.length)
println(<!DEBUG_INFO_SMARTCAST!>value_2<!><!UNNECESSARY_SAFE_CALL!>?.<!>toByte())
println(<!SAFE_CALL_WILL_CHANGE_NULLABILITY!><!DEBUG_INFO_SMARTCAST!>value_2<!><!UNNECESSARY_SAFE_CALL!>?.<!>toByte()<!>)
}
@@ -103,7 +103,7 @@ class case_3_class {
val o = case_3_class()
contracts.case_3(value_1, value_2, o.prop_1, this.prop_1)
println(value_1.dec())
println(value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte())
println(<!SAFE_CALL_WILL_CHANGE_NULLABILITY!>value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte()<!>)
println(o.prop_1.plus(3))
}
}
@@ -155,22 +155,22 @@ class case_6_class {
val o = case_6_class()
if (contracts.case_6_1(value_1, value_2, o.prop_1, this.prop_1)) {
println(value_1.dec())
println(value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte())
println(<!SAFE_CALL_WILL_CHANGE_NULLABILITY!>value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte()<!>)
println(o.prop_1.plus(3))
}
if (!contracts.case_6_2(value_1, value_2, o.prop_1, this.prop_1)) {
println(value_1.dec())
println(value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte())
println(<!SAFE_CALL_WILL_CHANGE_NULLABILITY!>value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte()<!>)
println(o.prop_1.plus(3))
}
if (contracts.case_6_3(value_1, value_2, o.prop_1, this.prop_1) != null) {
println(value_1.dec())
println(value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte())
println(<!SAFE_CALL_WILL_CHANGE_NULLABILITY!>value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte()<!>)
println(o.prop_1.plus(3))
}
if (contracts.case_6_4(value_1, value_2, o.prop_1, this.prop_1) == null) {
println(value_1.dec())
println(value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte())
println(<!SAFE_CALL_WILL_CHANGE_NULLABILITY!>value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte()<!>)
println(o.prop_1.plus(3))
}
}
@@ -111,7 +111,7 @@ class case_3_class {
val o = case_3_class()
contracts.case_3(value_1, value_2, o.prop_1, this.prop_1)
println(<!DEBUG_INFO_SMARTCAST!>value_1<!>.dec())
println(value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte())
println(<!SAFE_CALL_WILL_CHANGE_NULLABILITY!>value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte()<!>)
println(<!DEBUG_INFO_SMARTCAST!>o.prop_1<!>.plus(3))
}
}
@@ -163,22 +163,22 @@ class case_6_class {
val o = case_6_class()
if (contracts.case_6_1(value_1, value_2, o.prop_1, this.prop_1)) {
println(<!DEBUG_INFO_SMARTCAST!>value_1<!>.dec())
println(value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte())
println(<!SAFE_CALL_WILL_CHANGE_NULLABILITY!>value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte()<!>)
println(<!DEBUG_INFO_SMARTCAST!>o.prop_1<!>.plus(3))
}
if (!contracts.case_6_2(value_1, value_2, o.prop_1, this.prop_1)) {
println(<!DEBUG_INFO_SMARTCAST!>value_1<!>.dec())
println(value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte())
println(<!SAFE_CALL_WILL_CHANGE_NULLABILITY!>value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte()<!>)
println(<!DEBUG_INFO_SMARTCAST!>o.prop_1<!>.plus(3))
}
if (contracts.case_6_3(value_1, value_2, o.prop_1, this.prop_1) != null) {
println(<!DEBUG_INFO_SMARTCAST!>value_1<!>.dec())
println(value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte())
println(<!SAFE_CALL_WILL_CHANGE_NULLABILITY!>value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte()<!>)
println(<!DEBUG_INFO_SMARTCAST!>o.prop_1<!>.plus(3))
}
if (contracts.case_6_4(value_1, value_2, o.prop_1, this.prop_1) == null) {
println(<!DEBUG_INFO_SMARTCAST!>value_1<!>.dec())
println(value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte())
println(<!SAFE_CALL_WILL_CHANGE_NULLABILITY!>value_2<!UNNECESSARY_SAFE_CALL!>?.<!>toByte()<!>)
println(<!DEBUG_INFO_SMARTCAST!>o.prop_1<!>.plus(3))
}
}