diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/FirDataFlowAnalyzer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/FirDataFlowAnalyzer.kt index 4616f489f73..def2cf8e33b 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/FirDataFlowAnalyzer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/FirDataFlowAnalyzer.kt @@ -477,11 +477,15 @@ abstract class FirDataFlowAnalyzer( val leftConst = leftOperand as? FirConstExpression<*> val rightConst = rightOperand as? FirConstExpression<*> + val leftIsNullConst = leftConst?.kind == ConstantValueKind.Null + val rightIsNullConst = rightConst?.kind == ConstantValueKind.Null + val leftIsNull = leftIsNullConst || leftOperand.coneType.isNullableNothing && !rightIsNullConst + val rightIsNull = rightIsNullConst || rightOperand.coneType.isNullableNothing && !leftIsNullConst when { leftConst != null && rightConst != null -> return - leftConst?.kind == ConstantValueKind.Null -> processEqNull(node, rightOperand, operation) - rightConst?.kind == ConstantValueKind.Null -> processEqNull(node, leftOperand, operation) + leftIsNull -> processEqNull(node, rightOperand, operation) + rightIsNull -> processEqNull(node, leftOperand, operation) leftConst != null -> processEqWithConst(node, rightOperand, leftConst, operation) rightConst != null -> processEqWithConst(node, leftOperand, rightConst, operation) else -> processEq(node, leftOperand, rightOperand, operation) diff --git a/compiler/testData/diagnostics/tests/nullabilityAndSmartCasts/NullableNothingIsExactlyNull.fir.kt b/compiler/testData/diagnostics/tests/nullabilityAndSmartCasts/NullableNothingIsExactlyNull.fir.kt index 99fdd96492f..3c52c45b1b9 100644 --- a/compiler/testData/diagnostics/tests/nullabilityAndSmartCasts/NullableNothingIsExactlyNull.fir.kt +++ b/compiler/testData/diagnostics/tests/nullabilityAndSmartCasts/NullableNothingIsExactlyNull.fir.kt @@ -2,7 +2,7 @@ fun test() { val out : Int? = null val x : Nothing? = null if (out != x) - out.plus(1) + out.plus(1) if (out == x) return - out.plus(1) + out.plus(1) } diff --git a/compiler/testData/diagnostics/tests/smartCasts/comparisonUnderAnd.fir.kt b/compiler/testData/diagnostics/tests/smartCasts/comparisonUnderAnd.fir.kt index ed3be9ec261..0052087bed4 100644 --- a/compiler/testData/diagnostics/tests/smartCasts/comparisonUnderAnd.fir.kt +++ b/compiler/testData/diagnostics/tests/smartCasts/comparisonUnderAnd.fir.kt @@ -14,12 +14,12 @@ fun foo(x : String?, y : String?) { } else { // y == null but x != y - x.length + x.length y.length } if (y == null && x != y) { // y == null but x != y - x.length + x.length y.length } else { diff --git a/compiler/testData/diagnostics/tests/smartCasts/complexComparison.fir.kt b/compiler/testData/diagnostics/tests/smartCasts/complexComparison.fir.kt index 60a8f9e3aea..480b41aafad 100644 --- a/compiler/testData/diagnostics/tests/smartCasts/complexComparison.fir.kt +++ b/compiler/testData/diagnostics/tests/smartCasts/complexComparison.fir.kt @@ -3,7 +3,7 @@ fun foo(x: String?, y: String?, z: String?, w: String?) { z.length else z.length - if (x != null || y != null || (x != z && y != z)) + if (x != null || y != null || (x != z && y != z)) z.length else z.length diff --git a/compiler/testData/diagnostics/tests/smartCasts/equals.fir.kt b/compiler/testData/diagnostics/tests/smartCasts/equals.fir.kt index 79f5394c110..e9cd378080a 100644 --- a/compiler/testData/diagnostics/tests/smartCasts/equals.fir.kt +++ b/compiler/testData/diagnostics/tests/smartCasts/equals.fir.kt @@ -20,6 +20,6 @@ fun bar(i: TestWithEquals?) { fun gav(i: TestWithEquals?, j: TestWithEquals?) { if (j == null) { - if (i == j) foo(i) + if (i == j) foo(i) } } diff --git a/compiler/tests-spec/testData/diagnostics/notLinked/dfa/neg/11.fir.kt b/compiler/tests-spec/testData/diagnostics/notLinked/dfa/neg/11.fir.kt index bc7adcdad47..bf17c15b74e 100644 --- a/compiler/tests-spec/testData/diagnostics/notLinked/dfa/neg/11.fir.kt +++ b/compiler/tests-spec/testData/diagnostics/notLinked/dfa/neg/11.fir.kt @@ -46,9 +46,9 @@ fun case_4() { */ fun case_5() { var x: Int? = null - if (x == try { x = 10; null } finally {} && x != null) { - x - x.inv() + if (x == try { x = 10; null } finally {} && x != null) { + x + x.inv() } } diff --git a/compiler/tests-spec/testData/diagnostics/notLinked/dfa/neg/15.fir.kt b/compiler/tests-spec/testData/diagnostics/notLinked/dfa/neg/15.fir.kt index 10e9e6475a1..6b314525d7e 100644 --- a/compiler/tests-spec/testData/diagnostics/notLinked/dfa/neg/15.fir.kt +++ b/compiler/tests-spec/testData/diagnostics/notLinked/dfa/neg/15.fir.kt @@ -49,9 +49,9 @@ fun case_3() { */ fun case_4() { var x: Int? = null - if (x == try { x = 10; null } finally {} && x != null) { - x - x.inv() + if (x == try { x = 10; null } finally {} && x != null) { + x + x.inv() println(1) } } diff --git a/compiler/tests-spec/testData/diagnostics/notLinked/dfa/neg/16.fir.kt b/compiler/tests-spec/testData/diagnostics/notLinked/dfa/neg/16.fir.kt index 9a020277170..a2c7fd29ff5 100644 --- a/compiler/tests-spec/testData/diagnostics/notLinked/dfa/neg/16.fir.kt +++ b/compiler/tests-spec/testData/diagnostics/notLinked/dfa/neg/16.fir.kt @@ -10,8 +10,8 @@ fun case_1(x: ClassWithCustomEquals) { val y = null if (x == y) { - x - x.inv() + x + x.inv() } } @@ -30,8 +30,8 @@ fun case_2(x: ClassWithCustomEquals) { */ fun case_3(x: ClassWithCustomEquals, y: Nothing?) { if (x == y) { - x - x.inv() + x + x.inv() } } @@ -43,8 +43,8 @@ fun case_3(x: ClassWithCustomEquals, y: Nothing?) { fun case_4(x: ClassWithCustomEquals) { val y = null if (y == x) { - x - x.inv() + x + x.inv() } } @@ -55,8 +55,8 @@ fun case_4(x: ClassWithCustomEquals) { */ fun case_5(x: ClassWithCustomEquals, y: Nothing?) { if (y == x) { - x - x.inv() + x + x.inv() } } @@ -68,8 +68,8 @@ fun case_5(x: ClassWithCustomEquals, y: Nothing?) { fun case_6(x: ClassWithCustomEquals) { val y = null if (x == y == true) { - x - x.inv() + x + x.inv() } } @@ -88,8 +88,8 @@ fun case_7(x: ClassWithCustomEquals) { */ fun case_8(x: ClassWithCustomEquals, y: Nothing?) { if (!(y == x) == false) { - x - x.inv() + x + x.inv() } } diff --git a/compiler/tests-spec/testData/diagnostics/notLinked/dfa/neg/32.fir.kt b/compiler/tests-spec/testData/diagnostics/notLinked/dfa/neg/32.fir.kt index 74683ea16fe..74f3137afa2 100644 --- a/compiler/tests-spec/testData/diagnostics/notLinked/dfa/neg/32.fir.kt +++ b/compiler/tests-spec/testData/diagnostics/notLinked/dfa/neg/32.fir.kt @@ -24,8 +24,8 @@ fun case_1(x: Int?) { */ fun case_2(x: Int?, y: Nothing?) { if (x == y) { - stringArg(x!!) - x + stringArg(x!!) + x } } diff --git a/compiler/tests-spec/testData/diagnostics/notLinked/dfa/neg/33.fir.kt b/compiler/tests-spec/testData/diagnostics/notLinked/dfa/neg/33.fir.kt index 5af73610fa4..946237a5cfe 100644 --- a/compiler/tests-spec/testData/diagnostics/notLinked/dfa/neg/33.fir.kt +++ b/compiler/tests-spec/testData/diagnostics/notLinked/dfa/neg/33.fir.kt @@ -23,7 +23,7 @@ fun case_1(x: Int?) { */ fun case_2(x: Int?, y: Nothing?) { if (x == y) { - nullableStringArg(x) + nullableStringArg(x) } } diff --git a/compiler/tests-spec/testData/diagnostics/notLinked/dfa/neg/38.fir.kt b/compiler/tests-spec/testData/diagnostics/notLinked/dfa/neg/38.fir.kt index 65b730e1f90..0bb88bd4726 100644 --- a/compiler/tests-spec/testData/diagnostics/notLinked/dfa/neg/38.fir.kt +++ b/compiler/tests-spec/testData/diagnostics/notLinked/dfa/neg/38.fir.kt @@ -49,8 +49,8 @@ fun case_3(y: Nothing?) { break@outer } } - x - x.length + x + x.length } /* @@ -68,8 +68,8 @@ fun case_4(y: Nothing?) { } } } - x - x.length + x + x.length } // TESTCASE NUMBER: 5 diff --git a/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/13.fir.kt b/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/13.fir.kt index c4e0920306c..d31cce79870 100644 --- a/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/13.fir.kt +++ b/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/13.fir.kt @@ -7,68 +7,68 @@ fun case_1(x: T) { var y = null if (y != x) { - x - x.equals(null) - x.propT - x.propAny - x.propNullableT - x.propNullableAny - x.funT() - x.funAny() - x.funNullableT() - x.funNullableAny() - x.apply { equals(null) } - x.apply { propT } - x.apply { propAny } - x.apply { propNullableT } - x.apply { propNullableAny } - x.apply { funT() } - x.apply { funAny() } - x.apply { funNullableT() } - x.apply { funNullableAny(); x.equals(null) } - x.also { it.equals(null) } - x.also { it.propT } - x.also { it.propAny } - x.also { it.propNullableT } - x.also { it.propNullableAny } - x.also { it.funT() } - x.also { it.funAny() } - x.also { it.funNullableT() } - x.also { it.funNullableAny() } + x + x.equals(null) + x.propT + x.propAny + x.propNullableT + x.propNullableAny + x.funT() + x.funAny() + x.funNullableT() + x.funNullableAny() + x.apply { equals(null) } + x.apply { propT } + x.apply { propAny } + x.apply { propNullableT } + x.apply { propNullableAny } + x.apply { funT() } + x.apply { funAny() } + x.apply { funNullableT() } + x.apply { funNullableAny(); x.equals(null) } + x.also { it.equals(null) } + x.also { it.propT } + x.also { it.propAny } + x.also { it.propNullableT } + x.also { it.propNullableAny } + x.also { it.funT() } + x.also { it.funAny() } + x.also { it.funNullableT() } + x.also { it.funNullableAny() } } } // TESTCASE NUMBER: 2 fun case_2(x: T?, y: Nothing?) { if (y != x) { - x - x.equals(null) - x.propT - x.propAny - x.propNullableT - x.propNullableAny - x.funT() - x.funAny() - x.funNullableT() - x.funNullableAny() - x.apply { equals(null) } - x.apply { propT } - x.apply { propAny } - x.apply { propNullableT } - x.apply { propNullableAny } - x.apply { funT() } - x.apply { funAny() } - x.apply { funNullableT() } - x.apply { funNullableAny(); x.equals(null) } - x.also { it.equals(null) } - x.also { it.propT } - x.also { it.propAny } - x.also { it.propNullableT } - x.also { it.propNullableAny } - x.also { it.funT() } - x.also { it.funAny() } - x.also { it.funNullableT() } - x.also { it.funNullableAny() } + x + x.equals(null) + x.propT + x.propAny + x.propNullableT + x.propNullableAny + x.funT() + x.funAny() + x.funNullableT() + x.funNullableAny() + x.apply { equals(null) } + x.apply { propT } + x.apply { propAny } + x.apply { propNullableT } + x.apply { propNullableAny } + x.apply { funT() } + x.apply { funAny() } + x.apply { funNullableT() } + x.apply { funNullableAny(); x.equals(null) } + x.also { it.equals(null) } + x.also { it.propT } + x.also { it.propAny } + x.also { it.propNullableT } + x.also { it.propNullableAny } + x.also { it.funT() } + x.also { it.funAny() } + x.also { it.funNullableT() } + x.also { it.funNullableAny() } } } diff --git a/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/16.fir.kt b/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/16.fir.kt index f6170130cc3..6b12e784316 100644 --- a/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/16.fir.kt +++ b/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/16.fir.kt @@ -49,68 +49,68 @@ fun case_4(x: Number?) { // TESTCASE NUMBER: 5 fun case_5(x: Char?, y: Nothing?) { if (x != y) else return - x - x.equals(null) - x.propT - x.propAny - x.propNullableT - x.propNullableAny - x.funT() - x.funAny() - x.funNullableT() - x.funNullableAny() + x + x.equals(null) + x.propT + x.propAny + x.propNullableT + x.propNullableAny + x.funT() + x.funAny() + x.funNullableT() + x.funNullableAny() } // TESTCASE NUMBER: 6 fun case_6(x: Object?) { if (x !== implicitNullableNothingProperty) else { return } - x - x.equals(null) - x.propT - x.propAny - x.propNullableT - x.propNullableAny - x.funT() - x.funAny() - x.funNullableT() - x.funNullableAny() + x + x.equals(null) + x.propT + x.propAny + x.propNullableT + x.propNullableAny + x.funT() + x.funAny() + x.funNullableT() + x.funNullableAny() } // TESTCASE NUMBER: 7 fun case_7(x: Class?) { if (x === implicitNullableNothingProperty || false || false || false) { return } - x - x.equals(null) - x.propT - x.propAny - x.propNullableT - x.propNullableAny - x.funT() - x.funAny() - x.funNullableT() - x.funNullableAny() + x + x.equals(null) + x.propT + x.propAny + x.propNullableT + x.propNullableAny + x.funT() + x.funAny() + x.funNullableT() + x.funNullableAny() } // TESTCASE NUMBER: 8 fun case_8(x: Int?) { if (false || false || false || x == nullableNothingProperty) return - x - x.inv() + x + x.inv() } // TESTCASE NUMBER: 9 fun case_9(x: String?) { if (x != implicitNullableNothingProperty && true && true && true) else { return } - x - x.equals(null) - x.propT - x.propAny - x.propNullableT - x.propNullableAny - x.funT() - x.funAny() - x.funNullableT() - x.funNullableAny() + x + x.equals(null) + x.propT + x.propAny + x.propNullableT + x.propNullableAny + x.funT() + x.funAny() + x.funNullableT() + x.funNullableAny() } // TESTCASE NUMBER: 10 @@ -191,68 +191,68 @@ fun case_14(x: MutableCollection?) { // TESTCASE NUMBER: 15 fun case_15(x: MutableCollection?, y: Nothing?) { if (x != y) else return - ?")!>x - ?")!>x.equals(null) - ?")!>x.propT - ?")!>x.propAny - ?")!>x.propNullableT - ?")!>x.propNullableAny - ?")!>x.funT() - ?")!>x.funAny() - ?")!>x.funNullableT() - ?")!>x.funNullableAny() + ? & kotlin.collections.MutableCollection")!>x + ? & kotlin.collections.MutableCollection")!>x.equals(null) + ? & kotlin.collections.MutableCollection")!>x.propT + ? & kotlin.collections.MutableCollection")!>x.propAny + ? & kotlin.collections.MutableCollection")!>x.propNullableT + ? & kotlin.collections.MutableCollection")!>x.propNullableAny + ? & kotlin.collections.MutableCollection")!>x.funT() + ? & kotlin.collections.MutableCollection")!>x.funAny() + ? & kotlin.collections.MutableCollection")!>x.funNullableT() + ? & kotlin.collections.MutableCollection")!>x.funNullableAny() } // TESTCASE NUMBER: 16 fun case_16(x: Collection>>>>>>?) { if (x !== implicitNullableNothingProperty) else { return } - >>>>>>?")!>x - >>>>>>?")!>x.equals(null) - >>>>>>?")!>x.propT - >>>>>>?")!>x.propAny - >>>>>>?")!>x.propNullableT - >>>>>>?")!>x.propNullableAny - >>>>>>?")!>x.funT() - >>>>>>?")!>x.funAny() - >>>>>>?")!>x.funNullableT() - >>>>>>?")!>x.funNullableAny() + >>>>>>? & kotlin.collections.Collection>>>>>>")!>x + >>>>>>? & kotlin.collections.Collection>>>>>>")!>x.equals(null) + >>>>>>? & kotlin.collections.Collection>>>>>>")!>x.propT + >>>>>>? & kotlin.collections.Collection>>>>>>")!>x.propAny + >>>>>>? & kotlin.collections.Collection>>>>>>")!>x.propNullableT + >>>>>>? & kotlin.collections.Collection>>>>>>")!>x.propNullableAny + >>>>>>? & kotlin.collections.Collection>>>>>>")!>x.funT() + >>>>>>? & kotlin.collections.Collection>>>>>>")!>x.funAny() + >>>>>>? & kotlin.collections.Collection>>>>>>")!>x.funNullableT() + >>>>>>? & kotlin.collections.Collection>>>>>>")!>x.funNullableAny() } // TESTCASE NUMBER: 17 fun case_17(x: MutableMap<*, *>?) { if (x === implicitNullableNothingProperty || false) { return } - ?")!>x - ?")!>x.equals(null) - ?")!>x.propT - ?")!>x.propAny - ?")!>x.propNullableT - ?")!>x.propNullableAny - ?")!>x.funT() - ?")!>x.funAny() - ?")!>x.funNullableT() - ?")!>x.funNullableAny() + ? & kotlin.collections.MutableMap<*, *>")!>x + ? & kotlin.collections.MutableMap<*, *>")!>x.equals(null) + ? & kotlin.collections.MutableMap<*, *>")!>x.propT + ? & kotlin.collections.MutableMap<*, *>")!>x.propAny + ? & kotlin.collections.MutableMap<*, *>")!>x.propNullableT + ? & kotlin.collections.MutableMap<*, *>")!>x.propNullableAny + ? & kotlin.collections.MutableMap<*, *>")!>x.funT() + ? & kotlin.collections.MutableMap<*, *>")!>x.funAny() + ? & kotlin.collections.MutableMap<*, *>")!>x.funNullableT() + ? & kotlin.collections.MutableMap<*, *>")!>x.funNullableAny() } // TESTCASE NUMBER: 18 fun case_18(x: MutableMap?) { if (false || false || false || x == nullableNothingProperty) return - ?")!>x - ?")!>x.equals(null) - ?")!>x.propT - ?")!>x.propAny - ?")!>x.propNullableT - ?")!>x.propNullableAny - ?")!>x.funT() - ?")!>x.funAny() - ?")!>x.funNullableT() - ?")!>x.funNullableAny() + ? & kotlin.collections.MutableMap")!>x + ? & kotlin.collections.MutableMap")!>x.equals(null) + ? & kotlin.collections.MutableMap")!>x.propT + ? & kotlin.collections.MutableMap")!>x.propAny + ? & kotlin.collections.MutableMap")!>x.propNullableT + ? & kotlin.collections.MutableMap")!>x.propNullableAny + ? & kotlin.collections.MutableMap")!>x.funT() + ? & kotlin.collections.MutableMap")!>x.funAny() + ? & kotlin.collections.MutableMap")!>x.funNullableT() + ? & kotlin.collections.MutableMap")!>x.funNullableAny() } // TESTCASE NUMBER: 19 fun case_19(x: Inv>>>>>>?) { if (x === implicitNullableNothingProperty && true) else { return } - >>>>>>?")!>x - >>>>>>?")!>x.hashCode() + >>>>>>? & kotlin.Nothing?")!>x + >>>>>>? & kotlin.Nothing?")!>x.hashCode() } // TESTCASE NUMBER: 20 @@ -318,16 +318,16 @@ fun case_23(x: Inv?) { // TESTCASE NUMBER: 24 fun case_24(x: Inv?, y: Nothing?) { if (x !== y && true) else return - ?")!>x - ?")!>x.equals(null) - ?")!>x.propT - ?")!>x.propAny - ?")!>x.propNullableT - ?")!>x.propNullableAny - ?")!>x.funT() - ?")!>x.funAny() - ?")!>x.funNullableT() - ?")!>x.funNullableAny() + ? & Inv")!>x + ? & Inv")!>x.equals(null) + ? & Inv")!>x.propT + ? & Inv")!>x.propAny + ? & Inv")!>x.propNullableT + ? & Inv")!>x.propNullableAny + ? & Inv")!>x.funT() + ? & Inv")!>x.funAny() + ? & Inv")!>x.funNullableT() + ? & Inv")!>x.funNullableAny() } // TESTCASE NUMBER: 25 @@ -383,32 +383,32 @@ fun case_28(x: Number?) { // TESTCASE NUMBER: 29 fun case_29(x: Char?, y: Nothing?) = l@ { if (x != y) else return@l - x - x.equals(null) - x.propT - x.propAny - x.propNullableT - x.propNullableAny - x.funT() - x.funAny() - x.funNullableT() - x.funNullableAny() + x + x.equals(null) + x.propT + x.propAny + x.propNullableT + x.propNullableAny + x.funT() + x.funAny() + x.funNullableT() + x.funNullableAny() } // TESTCASE NUMBER: 30 fun case_30(x: Object?): Any { return (l@ { if (x !== implicitNullableNothingProperty) else { return@l } - x - x.equals(null) - x.propT - x.propAny - x.propNullableT - x.propNullableAny - x.funT() - x.funAny() - x.funNullableT() - x.funNullableAny() + x + x.equals(null) + x.propT + x.propAny + x.propNullableT + x.propNullableAny + x.funT() + x.funAny() + x.funNullableT() + x.funNullableAny() })() } @@ -416,16 +416,16 @@ fun case_30(x: Object?): Any { fun case_31(x: Class?): Any { return l@ { if (x === implicitNullableNothingProperty || false || false || false) { return@l } - x - x.equals(null) - x.propT - x.propAny - x.propNullableT - x.propNullableAny - x.funT() - x.funAny() - x.funNullableT() - x.funNullableAny() + x + x.equals(null) + x.propT + x.propAny + x.propNullableT + x.propNullableAny + x.funT() + x.funAny() + x.funNullableT() + x.funNullableAny() } } @@ -433,16 +433,16 @@ fun case_31(x: Class?): Any { fun case_32(x: Any?) { case_32((l@ { if (false || false || false || x == nullableNothingProperty) return@l - x - x.equals(null) - x.propT - x.propAny - x.propNullableT - x.propNullableAny - x.funT() - x.funAny() - x.funNullableT() - x.funNullableAny() + x + x.equals(null) + x.propT + x.propAny + x.propNullableT + x.propNullableAny + x.funT() + x.funAny() + x.funNullableT() + x.funNullableAny() })()) } @@ -450,16 +450,16 @@ fun case_32(x: Any?) { fun case_33(x: Any?) { case_33(l@ { if (x != implicitNullableNothingProperty && true && true && true) else { return@l } - x - x.equals(null) - x.propT - x.propAny - x.propNullableT - x.propNullableAny - x.funT() - x.funAny() - x.funNullableT() - x.funNullableAny() + x + x.equals(null) + x.propT + x.propAny + x.propNullableT + x.propNullableAny + x.funT() + x.funAny() + x.funNullableT() + x.funNullableAny() }) } @@ -566,16 +566,16 @@ fun case_39(x: MutableCollection?) { fun case_39(x: MutableCollection?, y: Nothing?) { (l2@ { if (x != y) else return@l2 - ?")!>x - ?")!>x.equals(null) - ?")!>x.propT - ?")!>x.propAny - ?")!>x.propNullableT - ?")!>x.propNullableAny - ?")!>x.funT() - ?")!>x.funAny() - ?")!>x.funNullableT() - ?")!>x.funNullableAny() + ? & kotlin.collections.MutableCollection")!>x + ? & kotlin.collections.MutableCollection")!>x.equals(null) + ? & kotlin.collections.MutableCollection")!>x.propT + ? & kotlin.collections.MutableCollection")!>x.propAny + ? & kotlin.collections.MutableCollection")!>x.propNullableT + ? & kotlin.collections.MutableCollection")!>x.propNullableAny + ? & kotlin.collections.MutableCollection")!>x.funT() + ? & kotlin.collections.MutableCollection")!>x.funAny() + ? & kotlin.collections.MutableCollection")!>x.funNullableT() + ? & kotlin.collections.MutableCollection")!>x.funNullableAny() })() } @@ -583,16 +583,16 @@ fun case_39(x: MutableCollection?, y: Nothing?) { fun case_40(x: Collection>>>>>>?) { val z = (l@ { if (x !== implicitNullableNothingProperty) else { return@l } - >>>>>>?")!>x - >>>>>>?")!>x.equals(null) - >>>>>>?")!>x.propT - >>>>>>?")!>x.propAny - >>>>>>?")!>x.propNullableT - >>>>>>?")!>x.propNullableAny - >>>>>>?")!>x.funT() - >>>>>>?")!>x.funAny() - >>>>>>?")!>x.funNullableT() - >>>>>>?")!>x.funNullableAny() + >>>>>>? & kotlin.collections.Collection>>>>>>")!>x + >>>>>>? & kotlin.collections.Collection>>>>>>")!>x.equals(null) + >>>>>>? & kotlin.collections.Collection>>>>>>")!>x.propT + >>>>>>? & kotlin.collections.Collection>>>>>>")!>x.propAny + >>>>>>? & kotlin.collections.Collection>>>>>>")!>x.propNullableT + >>>>>>? & kotlin.collections.Collection>>>>>>")!>x.propNullableAny + >>>>>>? & kotlin.collections.Collection>>>>>>")!>x.funT() + >>>>>>? & kotlin.collections.Collection>>>>>>")!>x.funAny() + >>>>>>? & kotlin.collections.Collection>>>>>>")!>x.funNullableT() + >>>>>>? & kotlin.collections.Collection>>>>>>")!>x.funNullableAny() })() } @@ -600,16 +600,16 @@ fun case_40(x: Collection?) { listOf(l@ { if (x === implicitNullableNothingProperty || false) { return@l } - ?")!>x - ?")!>x.equals(null) - ?")!>x.propT - ?")!>x.propAny - ?")!>x.propNullableT - ?")!>x.propNullableAny - ?")!>x.funT() - ?")!>x.funAny() - ?")!>x.funNullableT() - ?")!>x.funNullableAny() + ? & kotlin.collections.MutableMap<*, *>")!>x + ? & kotlin.collections.MutableMap<*, *>")!>x.equals(null) + ? & kotlin.collections.MutableMap<*, *>")!>x.propT + ? & kotlin.collections.MutableMap<*, *>")!>x.propAny + ? & kotlin.collections.MutableMap<*, *>")!>x.propNullableT + ? & kotlin.collections.MutableMap<*, *>")!>x.propNullableAny + ? & kotlin.collections.MutableMap<*, *>")!>x.funT() + ? & kotlin.collections.MutableMap<*, *>")!>x.funAny() + ? & kotlin.collections.MutableMap<*, *>")!>x.funNullableT() + ? & kotlin.collections.MutableMap<*, *>")!>x.funNullableAny() }) } @@ -617,16 +617,16 @@ fun case_41(x: MutableMap<*, *>?) { fun case_42(x: MutableMap?) { return (l@ { if (false || false || false || x == nullableNothingProperty) return@l - ?")!>x - ?")!>x.equals(null) - ?")!>x.propT - ?")!>x.propAny - ?")!>x.propNullableT - ?")!>x.propNullableAny - ?")!>x.funT() - ?")!>x.funAny() - ?")!>x.funNullableT() - ?")!>x.funNullableAny() + ? & kotlin.collections.MutableMap")!>x + ? & kotlin.collections.MutableMap")!>x.equals(null) + ? & kotlin.collections.MutableMap")!>x.propT + ? & kotlin.collections.MutableMap")!>x.propAny + ? & kotlin.collections.MutableMap")!>x.propNullableT + ? & kotlin.collections.MutableMap")!>x.propNullableAny + ? & kotlin.collections.MutableMap")!>x.funT() + ? & kotlin.collections.MutableMap")!>x.funAny() + ? & kotlin.collections.MutableMap")!>x.funNullableT() + ? & kotlin.collections.MutableMap")!>x.funNullableAny() })() } @@ -634,8 +634,8 @@ fun case_42(x: MutableMap?) { fun case_43(x: Inv>>>>>>?): Any? { return l@ { if (x === implicitNullableNothingProperty && true) else { return@l } - >>>>>>?")!>x - >>>>>>?")!>x.hashCode() + >>>>>>? & kotlin.Nothing?")!>x + >>>>>>? & kotlin.Nothing?")!>x.hashCode() } } @@ -711,15 +711,15 @@ fun case_47(x: Inv?) { fun case_48(x: Inv?, y: Nothing?) { val y = ((((l@ { if (x !== y && true) else return@l - ?")!>x - ?")!>x.equals(null) - ?")!>x.propT - ?")!>x.propAny - ?")!>x.propNullableT - ?")!>x.propNullableAny - ?")!>x.funT() - ?")!>x.funAny() - ?")!>x.funNullableT() - ?")!>x.funNullableAny() + ? & Inv")!>x + ? & Inv")!>x.equals(null) + ? & Inv")!>x.propT + ? & Inv")!>x.propAny + ? & Inv")!>x.propNullableT + ? & Inv")!>x.propNullableAny + ? & Inv")!>x.funT() + ? & Inv")!>x.funAny() + ? & Inv")!>x.funNullableT() + ? & Inv")!>x.funNullableAny() })))) } diff --git a/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/17.fir.kt b/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/17.fir.kt index f77c84d4ce1..7c8b5040f72 100644 --- a/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/17.fir.kt +++ b/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/17.fir.kt @@ -48,68 +48,68 @@ fun case_4(x: Number?) { // TESTCASE NUMBER: 5 fun case_5(x: Char?, y: Nothing?) { if (x != y) else throw Exception() - x - x.equals(null) - x.propT - x.propAny - x.propNullableT - x.propNullableAny - x.funT() - x.funAny() - x.funNullableT() - x.funNullableAny() + x + x.equals(null) + x.propT + x.propAny + x.propNullableT + x.propNullableAny + x.funT() + x.funAny() + x.funNullableT() + x.funNullableAny() } // TESTCASE NUMBER: 6 fun case_6(x: Object?) { if (x !== implicitNullableNothingProperty) else { throw Exception() } - x - x.equals(null) - x.propT - x.propAny - x.propNullableT - x.propNullableAny - x.funT() - x.funAny() - x.funNullableT() - x.funNullableAny() + x + x.equals(null) + x.propT + x.propAny + x.propNullableT + x.propNullableAny + x.funT() + x.funAny() + x.funNullableT() + x.funNullableAny() } // TESTCASE NUMBER: 7 fun case_7(x: Class?) { if (x === implicitNullableNothingProperty || false || false || false) { throw Exception() } - x - x.equals(null) - x.propT - x.propAny - x.propNullableT - x.propNullableAny - x.funT() - x.funAny() - x.funNullableT() - x.funNullableAny() + x + x.equals(null) + x.propT + x.propAny + x.propNullableT + x.propNullableAny + x.funT() + x.funAny() + x.funNullableT() + x.funNullableAny() } // TESTCASE NUMBER: 8 fun case_8(x: Int?) { if (false || false || false || x == nullableNothingProperty) throw Exception() - x - x.inv() + x + x.inv() } // TESTCASE NUMBER: 9 fun case_9(x: String?) { if (x != implicitNullableNothingProperty && true && true && true) else { throw Exception() } - x - x.equals(null) - x.propT - x.propAny - x.propNullableT - x.propNullableAny - x.funT() - x.funAny() - x.funNullableT() - x.funNullableAny() + x + x.equals(null) + x.propT + x.propAny + x.propNullableT + x.propNullableAny + x.funT() + x.funAny() + x.funNullableT() + x.funNullableAny() } // TESTCASE NUMBER: 10 @@ -190,68 +190,68 @@ fun case_14(x: MutableCollection?) { // TESTCASE NUMBER: 15 fun case_15(x: MutableCollection?, y: Nothing?) { if (x != y) else throw Exception() - ?")!>x - ?")!>x.equals(null) - ?")!>x.propT - ?")!>x.propAny - ?")!>x.propNullableT - ?")!>x.propNullableAny - ?")!>x.funT() - ?")!>x.funAny() - ?")!>x.funNullableT() - ?")!>x.funNullableAny() + ? & kotlin.collections.MutableCollection")!>x + ? & kotlin.collections.MutableCollection")!>x.equals(null) + ? & kotlin.collections.MutableCollection")!>x.propT + ? & kotlin.collections.MutableCollection")!>x.propAny + ? & kotlin.collections.MutableCollection")!>x.propNullableT + ? & kotlin.collections.MutableCollection")!>x.propNullableAny + ? & kotlin.collections.MutableCollection")!>x.funT() + ? & kotlin.collections.MutableCollection")!>x.funAny() + ? & kotlin.collections.MutableCollection")!>x.funNullableT() + ? & kotlin.collections.MutableCollection")!>x.funNullableAny() } // TESTCASE NUMBER: 16 fun case_16(x: Collection>>>>>>?) { if (x !== implicitNullableNothingProperty) else { throw Exception() } - >>>>>>?")!>x - >>>>>>?")!>x.equals(null) - >>>>>>?")!>x.propT - >>>>>>?")!>x.propAny - >>>>>>?")!>x.propNullableT - >>>>>>?")!>x.propNullableAny - >>>>>>?")!>x.funT() - >>>>>>?")!>x.funAny() - >>>>>>?")!>x.funNullableT() - >>>>>>?")!>x.funNullableAny() + >>>>>>? & kotlin.collections.Collection>>>>>>")!>x + >>>>>>? & kotlin.collections.Collection>>>>>>")!>x.equals(null) + >>>>>>? & kotlin.collections.Collection>>>>>>")!>x.propT + >>>>>>? & kotlin.collections.Collection>>>>>>")!>x.propAny + >>>>>>? & kotlin.collections.Collection>>>>>>")!>x.propNullableT + >>>>>>? & kotlin.collections.Collection>>>>>>")!>x.propNullableAny + >>>>>>? & kotlin.collections.Collection>>>>>>")!>x.funT() + >>>>>>? & kotlin.collections.Collection>>>>>>")!>x.funAny() + >>>>>>? & kotlin.collections.Collection>>>>>>")!>x.funNullableT() + >>>>>>? & kotlin.collections.Collection>>>>>>")!>x.funNullableAny() } // TESTCASE NUMBER: 17 fun case_17(x: MutableMap<*, *>?) { if (x === implicitNullableNothingProperty || false) { throw Exception() } - ?")!>x - ?")!>x.equals(null) - ?")!>x.propT - ?")!>x.propAny - ?")!>x.propNullableT - ?")!>x.propNullableAny - ?")!>x.funT() - ?")!>x.funAny() - ?")!>x.funNullableT() - ?")!>x.funNullableAny() + ? & kotlin.collections.MutableMap<*, *>")!>x + ? & kotlin.collections.MutableMap<*, *>")!>x.equals(null) + ? & kotlin.collections.MutableMap<*, *>")!>x.propT + ? & kotlin.collections.MutableMap<*, *>")!>x.propAny + ? & kotlin.collections.MutableMap<*, *>")!>x.propNullableT + ? & kotlin.collections.MutableMap<*, *>")!>x.propNullableAny + ? & kotlin.collections.MutableMap<*, *>")!>x.funT() + ? & kotlin.collections.MutableMap<*, *>")!>x.funAny() + ? & kotlin.collections.MutableMap<*, *>")!>x.funNullableT() + ? & kotlin.collections.MutableMap<*, *>")!>x.funNullableAny() } // TESTCASE NUMBER: 18 fun case_18(x: MutableMap?) { if (false || false || false || x == nullableNothingProperty) throw Exception() - ?")!>x - ?")!>x.equals(null) - ?")!>x.propT - ?")!>x.propAny - ?")!>x.propNullableT - ?")!>x.propNullableAny - ?")!>x.funT() - ?")!>x.funAny() - ?")!>x.funNullableT() - ?")!>x.funNullableAny() + ? & kotlin.collections.MutableMap")!>x + ? & kotlin.collections.MutableMap")!>x.equals(null) + ? & kotlin.collections.MutableMap")!>x.propT + ? & kotlin.collections.MutableMap")!>x.propAny + ? & kotlin.collections.MutableMap")!>x.propNullableT + ? & kotlin.collections.MutableMap")!>x.propNullableAny + ? & kotlin.collections.MutableMap")!>x.funT() + ? & kotlin.collections.MutableMap")!>x.funAny() + ? & kotlin.collections.MutableMap")!>x.funNullableT() + ? & kotlin.collections.MutableMap")!>x.funNullableAny() } // TESTCASE NUMBER: 19 fun case_19(x: Inv>>>>>>?) { if (x === implicitNullableNothingProperty && true) else { throw Exception() } - >>>>>>?")!>x - >>>>>>?")!>x.hashCode() + >>>>>>? & kotlin.Nothing?")!>x + >>>>>>? & kotlin.Nothing?")!>x.hashCode() } // TESTCASE NUMBER: 20 @@ -317,29 +317,29 @@ fun case_23(x: Inv?) { // TESTCASE NUMBER: 24 fun case_24(x: Inv?, y: Nothing?) { if (x !== y && true) else throw Exception() - ?")!>x - ?")!>x.equals(null) - ?")!>x.propT - ?")!>x.propAny - ?")!>x.propNullableT - ?")!>x.propNullableAny - ?")!>x.funT() - ?")!>x.funAny() - ?")!>x.funNullableT() - ?")!>x.funNullableAny() + ? & Inv")!>x + ? & Inv")!>x.equals(null) + ? & Inv")!>x.propT + ? & Inv")!>x.propAny + ? & Inv")!>x.propNullableT + ? & Inv")!>x.propNullableAny + ? & Inv")!>x.funT() + ? & Inv")!>x.funAny() + ? & Inv")!>x.funNullableT() + ? & Inv")!>x.funNullableAny() } // TESTCASE NUMBER: 25 fun case_25(x: Inv?, y: Nothing?) { if (x !== y) else try { throw Exception() } finally { throw Exception() } - ?")!>x - ?")!>x.equals(null) - ?")!>x.propT - ?")!>x.propAny - ?")!>x.propNullableT - ?")!>x.propNullableAny - ?")!>x.funT() - ?")!>x.funAny() - ?")!>x.funNullableT() - ?")!>x.funNullableAny() + ? & Inv")!>x + ? & Inv")!>x.equals(null) + ? & Inv")!>x.propT + ? & Inv")!>x.propAny + ? & Inv")!>x.propNullableT + ? & Inv")!>x.propNullableAny + ? & Inv")!>x.funT() + ? & Inv")!>x.funAny() + ? & Inv")!>x.funNullableT() + ? & Inv")!>x.funNullableAny() } diff --git a/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/18.fir.kt b/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/18.fir.kt index 16618bcf374..71badfc66e5 100644 --- a/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/18.fir.kt +++ b/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/18.fir.kt @@ -57,16 +57,16 @@ fun case_4(x: Number?) { fun case_5(x: Char?, y: Nothing?, f: Boolean) { do { if (x != y) else continue - x - x.equals(null) - x.propT - x.propAny - x.propNullableT - x.propNullableAny - x.funT() - x.funAny() - x.funNullableT() - x.funNullableAny() + x + x.equals(null) + x.propT + x.propAny + x.propNullableT + x.propNullableAny + x.funT() + x.funAny() + x.funNullableT() + x.funNullableAny() } while (f) } @@ -74,16 +74,16 @@ fun case_5(x: Char?, y: Nothing?, f: Boolean) { fun case_6(x: Object?, f: Boolean) { while (f) { if (x !== implicitNullableNothingProperty) else { continue } - x - x.equals(null) - x.propT - x.propAny - x.propNullableT - x.propNullableAny - x.funT() - x.funAny() - x.funNullableT() - x.funNullableAny() + x + x.equals(null) + x.propT + x.propAny + x.propNullableT + x.propNullableAny + x.funT() + x.funAny() + x.funNullableT() + x.funNullableAny() } } @@ -91,16 +91,16 @@ fun case_6(x: Object?, f: Boolean) { fun case_7(x: Class?, list: List) { for (element in list) { if (x === implicitNullableNothingProperty || false || false || false) { break } - x - x.equals(null) - x.propT - x.propAny - x.propNullableT - x.propNullableAny - x.funT() - x.funAny() - x.funNullableT() - x.funNullableAny() + x + x.equals(null) + x.propT + x.propAny + x.propNullableT + x.propNullableAny + x.funT() + x.funAny() + x.funNullableT() + x.funNullableAny() } } @@ -108,8 +108,8 @@ fun case_7(x: Class?, list: List) { fun case_8(x: Int?) { for (i in 0..10) { if (false || false || false || x == nullableNothingProperty) continue - x - x.inv() + x + x.inv() } } @@ -117,8 +117,8 @@ fun case_8(x: Int?) { fun case_9(list: List) { for (element in list) { if (element != implicitNullableNothingProperty && true && true && true) else { break } - element - element.inv() + element + element.inv() } } @@ -204,10 +204,10 @@ fun case_15(map: MutableMap, y: Nothing?) { for ((k, v) in map) { if (k != y) else break if (v != y) else continue - k - k.inv() - v - v.inv() + k + k.inv() + v + v.inv() } } @@ -215,10 +215,10 @@ fun case_15(map: MutableMap, y: Nothing?) { fun case_16(map: Map) { for ((k, v) in map) { if (k !== implicitNullableNothingProperty && v !== implicitNullableNothingProperty) else { continue } - k - k.inv() - v - v.inv() + k + k.inv() + v + v.inv() } } @@ -226,16 +226,16 @@ fun case_16(map: Map) { fun case_17(x: T?, f: Boolean) { while (f) { if (x === implicitNullableNothingProperty || false) { break } - x - x.equals(null) - x.propT - x.propAny - x.propNullableT - x.propNullableAny - x.funT() - x.funAny() - x.funNullableT() - x.funNullableAny() + x + x.equals(null) + x.propT + x.propAny + x.propNullableT + x.propNullableAny + x.funT() + x.funAny() + x.funNullableT() + x.funNullableAny() } } @@ -243,16 +243,16 @@ fun case_17(x: T?, f: Boolean) { fun case_18(x: T, f: Boolean) { while (f) { if (false || false || false || x == nullableNothingProperty) break - x - x.equals(null) - x.propT - x.propAny - x.propNullableT - x.propNullableAny - x.funT() - x.funAny() - x.funNullableT() - x.funNullableAny() + x + x.equals(null) + x.propT + x.propAny + x.propNullableT + x.propNullableAny + x.funT() + x.funAny() + x.funNullableT() + x.funNullableAny() } } @@ -260,26 +260,26 @@ fun case_18(x: T, f: Boolean) { fun case_19(map: MutableMap, y: Nothing?) { for ((k, v) in map) { if (k !== implicitNullableNothingProperty && true && v != y) else { break } - k - k.equals(null) - k.propT - k.propAny - k.propNullableT - k.propNullableAny - k.funT() - k.funAny() - k.funNullableT() - k.funNullableAny() - v - v.equals(null) - v.propT - v.propAny - v.propNullableT - v.propNullableAny - v.funT() - v.funAny() - v.funNullableT() - v.funNullableAny() + k + k.equals(null) + k.propT + k.propAny + k.propNullableT + k.propNullableAny + k.funT() + k.funAny() + k.funNullableT() + k.funNullableAny() + v + v.equals(null) + v.propT + v.propAny + v.propNullableT + v.propNullableAny + v.funT() + v.funAny() + v.funNullableT() + v.funNullableAny() } } @@ -376,16 +376,16 @@ fun case_23(x: Inv?) { fun case_24(x: Inv?, y: Nothing?) { do { if (x !== y && true) else continue - ?")!>x - ?")!>x.equals(null) - ?")!>x.propT - ?")!>x.propAny - ?")!>x.propNullableT - ?")!>x.propNullableAny - ?")!>x.funT() - ?")!>x.funAny() - ?")!>x.funNullableT() - ?")!>x.funNullableAny() + ? & Inv")!>x + ? & Inv")!>x.equals(null) + ? & Inv")!>x.propT + ? & Inv")!>x.propAny + ? & Inv")!>x.propNullableT + ? & Inv")!>x.propNullableAny + ? & Inv")!>x.funT() + ? & Inv")!>x.funAny() + ? & Inv")!>x.funNullableT() + ? & Inv")!>x.funNullableAny() } while (true) } @@ -397,15 +397,15 @@ fun case_25(x: Inv?, y: Nothing?, z: List) { } finally { continue } - ?")!>x - ?")!>x.equals(null) - ?")!>x.propT - ?")!>x.propAny - ?")!>x.propNullableT - ?")!>x.propNullableAny - ?")!>x.funT() - ?")!>x.funAny() - ?")!>x.funNullableT() - ?")!>x.funNullableAny() + ? & Inv")!>x + ? & Inv")!>x.equals(null) + ? & Inv")!>x.propT + ? & Inv")!>x.propAny + ? & Inv")!>x.propNullableT + ? & Inv")!>x.propNullableAny + ? & Inv")!>x.funT() + ? & Inv")!>x.funAny() + ? & Inv")!>x.funNullableT() + ? & Inv")!>x.funNullableAny() } } diff --git a/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/46.fir.kt b/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/46.fir.kt index e9bf1c14270..9ca3bad61bb 100644 --- a/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/46.fir.kt +++ b/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/46.fir.kt @@ -12,8 +12,8 @@ import kotlin.reflect.* */ fun case_1(x: Int?) { if (x != funNothingQuest() == true) { - x - x.inv() + x + x.inv() } } @@ -25,8 +25,8 @@ fun case_1(x: Int?) { fun case_2(x: Int?) { operator fun Nothing?.not() = null if (x != !null != false) { - x - x.inv() + x + x.inv() } } @@ -49,8 +49,8 @@ fun case_3(x: Int?) { */ fun case_4(x: Int?, y: List) { if (x == y[0] == true) { - x - x.inv() + x + x.inv() } } @@ -65,8 +65,8 @@ fun case_5(x: Int?) { } if (x == y.z == true) { - x - x.inv() + x + x.inv() } } @@ -79,8 +79,8 @@ fun case_6(x: Int?) { val y = null if (x == y == true) { - x - x.inv() + x + x.inv() } } @@ -96,8 +96,8 @@ fun case_7(x: Int?) { } if (x == y.z == true) { - x - x.inv() + x + x.inv() } } diff --git a/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/6.fir.kt b/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/6.fir.kt index af94732476e..5d3bfba67c9 100644 --- a/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/6.fir.kt +++ b/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/6.fir.kt @@ -19,16 +19,16 @@ import othertypes.* fun case_1(x: Any?) { val y = null if (x != y) { - x - x.equals(null) - x.propT - x.propAny - x.propNullableT - x.propNullableAny - x.funT() - x.funAny() - x.funNullableT() - x.funNullableAny() + x + x.equals(null) + x.propT + x.propAny + x.propNullableT + x.propNullableAny + x.funT() + x.funAny() + x.funNullableT() + x.funNullableAny() } } @@ -52,13 +52,13 @@ fun case_3() { if (Object.prop_1 == y) else { Object.prop_1 - Object.prop_1.equals(null) + Object.prop_1.equals(null) Object.prop_1.propT - Object.prop_1.propAny + Object.prop_1.propAny Object.prop_1.propNullableT Object.prop_1.propNullableAny Object.prop_1.funT() - Object.prop_1.funAny() + Object.prop_1.funAny() Object.prop_1.funNullableT() Object.prop_1.funNullableAny() } @@ -67,16 +67,16 @@ fun case_3() { // TESTCASE NUMBER: 4 fun case_4(x: Char?, y: Nothing?) { if (x != y && true) { - x - x.equals(null) - x.propT - x.propAny - x.propNullableT - x.propNullableAny - x.funT() - x.funAny() - x.funNullableT() - x.funNullableAny() + x + x.equals(null) + x.propT + x.propAny + x.propNullableT + x.propNullableAny + x.funT() + x.funAny() + x.funNullableT() + x.funNullableAny() } } @@ -86,16 +86,16 @@ fun case_5() { val y: Nothing? = null if (x !== y) { - x - x.equals(null) - x.propT - x.propAny - x.propNullableT - x.propNullableAny - x.funT() - x.funAny() - x.funNullableT() - x.funNullableAny() + x + x.equals(null) + x.propT + x.propAny + x.propNullableT + x.propNullableAny + x.funT() + x.funAny() + x.funNullableT() + x.funNullableAny() } } @@ -104,16 +104,16 @@ fun case_6(x: EmptyClass?, z: Nothing?) { val y = true if (x != z && !y) { - x - x.equals(null) - x.propT - x.propAny - x.propNullableT - x.propNullableAny - x.funT() - x.funAny() - x.funNullableT() - x.funNullableAny() + x + x.equals(null) + x.propT + x.propAny + x.propNullableT + x.propNullableAny + x.funT() + x.funAny() + x.funNullableT() + x.funNullableAny() } } @@ -121,7 +121,7 @@ fun case_6(x: EmptyClass?, z: Nothing?) { fun case_7(x: EmptyObject?) { val y = null - if (x != y || x != y) { + if (x != y || x != y) { x x.equals(null) x.propT @@ -139,17 +139,17 @@ fun case_7(x: EmptyObject?) { fun case_8(x: TypealiasNullableString) { val y = null - if (x !== y && x != y) { - x - x.equals(null) - x.propT - x.propAny - x.propNullableT - x.propNullableAny - x.funT() - x.funAny() - x.funNullableT() - x.funNullableAny() + if (x !== y && x != y) { + x + x.equals(null) + x.propT + x.propAny + x.propNullableT + x.propNullableAny + x.funT() + x.funAny() + x.funNullableT() + x.funNullableAny() } } @@ -158,16 +158,16 @@ fun case_9(x: TypealiasNullableString?, y: Nothing?) { if (x === y) { } else if (false) { - x - x.equals(null) - x.propT - x.propAny - x.propNullableT - x.propNullableAny - x.funT() - x.funAny() - x.funNullableT() - x.funNullableAny() + x + x.equals(null) + x.propT + x.propAny + x.propNullableT + x.propNullableAny + x.funT() + x.funAny() + x.funNullableT() + x.funNullableAny() } } @@ -198,7 +198,7 @@ fun case_11(x: TypealiasNullableString?, y: TypealiasNu val u: TypealiasNullableString = null val v = null - if (x == z && x == v) { + if (x == z && x == v) { } else { if (y != z) { @@ -221,35 +221,35 @@ fun case_11(x: TypealiasNullableString?, y: TypealiasNu } // TESTCASE NUMBER: 12 -fun case_12(x: TypealiasNullableString, y: TypealiasNullableString, z1: Nothing?, z2: Nothing?) = if (x == z1 || x == z2) "1" +fun case_12(x: TypealiasNullableString, y: TypealiasNullableString, z1: Nothing?, z2: Nothing?) = if (x == z1 || x == z2) "1" else if (y === z1 && y == z2) { - x - x.equals(null) - x.propT - x.propAny - x.propNullableT - x.propNullableAny - x.funT() - x.funAny() - x.funNullableT() - x.funNullableAny() + x + x.equals(null) + x.propT + x.propAny + x.propNullableT + x.propNullableAny + x.funT() + x.funAny() + x.funNullableT() + x.funNullableAny() } else "-1" // TESTCASE NUMBER: 13 fun case_13(x: EmptyClass12_48?, z: Nothing?) = - if (x == z || x === z && x == z) { + if (x == z || x === z && x == z) { throw Exception() } else { - x - x.equals(null) - x.propT - x.propAny - x.propNullableT - x.propNullableAny - x.funT() - x.funAny() - x.funNullableT() - x.funNullableAny() + x + x.equals(null) + x.propT + x.propAny + x.propNullableT + x.propNullableAny + x.funT() + x.funAny() + x.funNullableT() + x.funNullableAny() } // TESTCASE NUMBER: 14 @@ -265,15 +265,15 @@ fun case_14() { val x = null val y = implicitNullableNothingProperty - if (a.x != x && a.x != y || a.x != y && a.x !== null) { + if (a.x != x && a.x != y || a.x != y && a.x !== null) { a.x a.x.equals(null) a.x.propT - a.x.propAny + a.x.propAny a.x.propNullableT a.x.propNullableAny a.x.funT() - a.x.funAny() + a.x.funAny() a.x.funNullableT() a.x.funNullableAny() } @@ -282,7 +282,7 @@ fun case_14() { // TESTCASE NUMBER: 15 fun case_15(x: TypealiasNullableString) { val y = null - val z = if (x === null || y == x && x === y || null === x) "" else { + val z = if (x === null || y == x && x === y || null === x) "" else { x x.equals(null) x.propT @@ -302,23 +302,23 @@ fun case_16() { val y: Nothing? = null if (x !== y) { - x - x.hashCode() + x + x.hashCode() } } // TESTCASE NUMBER: 17 val case_17 = if (nullableIntProperty === implicitNullableNothingProperty) 0 else { - nullableIntProperty - nullableIntProperty.equals(null) - nullableIntProperty.propT - nullableIntProperty.propAny - nullableIntProperty.propNullableT - nullableIntProperty.propNullableAny - nullableIntProperty.funT() - nullableIntProperty.funAny() - nullableIntProperty.funNullableT() - nullableIntProperty.funNullableAny() + nullableIntProperty + nullableIntProperty.equals(null) + nullableIntProperty.propT + nullableIntProperty.propAny + nullableIntProperty.propNullableT + nullableIntProperty.propNullableAny + nullableIntProperty.funT() + nullableIntProperty.funAny() + nullableIntProperty.funNullableT() + nullableIntProperty.funNullableAny() } /* @@ -329,17 +329,17 @@ fun case_18(a: DeepObject.A.B.C.D.E.F.G.J?, b: Boolean) { val x = null val y = null - if (a != (if (b) x else y) || x !== a) { - a - a.equals(null) - a.propT - a.propAny - a.propNullableT - a.propNullableAny - a.funT() - a.funAny() - a.funNullableT() - a.funNullableAny() + if (a != (if (b) x else y) || x !== a) { + a + a.equals(null) + a.propT + a.propAny + a.propNullableT + a.propNullableAny + a.funT() + a.funAny() + a.funNullableT() + a.funNullableAny() } } @@ -364,17 +364,17 @@ fun case_19(b: Boolean) { } } else z - if (a != z && a.B19 !== z && a.B19.C19 != z && a.B19.C19.D19 != z && a.B19.C19.D19.x !== z) { - a.B19.C19.D19.x - a.B19.C19.D19.x.equals(null) - a.B19.C19.D19.x.propT - a.B19.C19.D19.x.propAny - a.B19.C19.D19.x.propNullableT - a.B19.C19.D19.x.propNullableAny - a.B19.C19.D19.x.funT() - a.B19.C19.D19.x.funAny() - a.B19.C19.D19.x.funNullableT() - a.B19.C19.D19.x.funNullableAny() + if (a != z && a.B19 !== z && a.B19.C19 != z && a.B19.C19.D19 != z && a.B19.C19.D19.x !== z) { + a.B19.C19.D19.x + a.B19.C19.D19.x.equals(null) + a.B19.C19.D19.x.propT + a.B19.C19.D19.x.propAny + a.B19.C19.D19.x.propNullableT + a.B19.C19.D19.x.propNullableAny + a.B19.C19.D19.x.funT() + a.B19.C19.D19.x.funAny() + a.B19.C19.D19.x.funNullableT() + a.B19.C19.D19.x.funNullableAny() } } @@ -392,13 +392,13 @@ fun case_20(x: Boolean, y: Nothing?) { if (z.B19.C19.D19 !== y) { z.B19.C19.D19 - z.B19.C19.D19.equals(null) + z.B19.C19.D19.equals(null) z.B19.C19.D19.propT - z.B19.C19.D19.propAny + z.B19.C19.D19.propAny z.B19.C19.D19.propNullableT z.B19.C19.D19.propNullableAny z.B19.C19.D19.funT() - z.B19.C19.D19.funAny() + z.B19.C19.D19.funAny() z.B19.C19.D19.funNullableT() z.B19.C19.D19.funNullableAny() } @@ -408,13 +408,13 @@ fun case_20(x: Boolean, y: Nothing?) { fun case_21() { if (EnumClassWithNullableProperty.A.prop_1 !== implicitNullableNothingProperty) { EnumClassWithNullableProperty.A.prop_1 - EnumClassWithNullableProperty.A.prop_1.equals(null) + EnumClassWithNullableProperty.A.prop_1.equals(null) EnumClassWithNullableProperty.A.prop_1.propT - EnumClassWithNullableProperty.A.prop_1.propAny + EnumClassWithNullableProperty.A.prop_1.propAny EnumClassWithNullableProperty.A.prop_1.propNullableT EnumClassWithNullableProperty.A.prop_1.propNullableAny EnumClassWithNullableProperty.A.prop_1.funT() - EnumClassWithNullableProperty.A.prop_1.funAny() + EnumClassWithNullableProperty.A.prop_1.funAny() EnumClassWithNullableProperty.A.prop_1.funNullableT() EnumClassWithNullableProperty.A.prop_1.funNullableAny() } @@ -423,24 +423,24 @@ fun case_21() { // TESTCASE NUMBER: 22 fun case_22(a: (() -> Unit)?) { if (a != implicitNullableNothingProperty) { - a() - ?")!>a.equals(null) - ?")!>a.propT - ?")!>a.propAny - ?")!>a.propNullableT - ?")!>a.propNullableAny - ?")!>a.funT() - ?")!>a.funAny() - ?")!>a.funNullableT() - ?")!>a.funNullableAny() + a() + ? & kotlin.Function0")!>a.equals(null) + ? & kotlin.Function0")!>a.propT + ? & kotlin.Function0")!>a.propAny + ? & kotlin.Function0")!>a.propNullableT + ? & kotlin.Function0")!>a.propNullableAny + ? & kotlin.Function0")!>a.funT() + ? & kotlin.Function0")!>a.funAny() + ? & kotlin.Function0")!>a.funNullableT() + ? & kotlin.Function0")!>a.funNullableAny() } } // TESTCASE NUMBER: 23 fun case_23(a: ((Float) -> Int?)?, b: Float?, z: Nothing?) { - if (a != z && b !== z && b !== z) { - val x = a(b) - if (x != z || x !== implicitNullableNothingProperty) { + if (a != z && b !== z && b !== z) { + val x = a(b) + if (x != z || x !== implicitNullableNothingProperty) { x x.equals(null) x.propT @@ -458,25 +458,25 @@ fun case_23(a: ((Float) -> Int?)?, b: Float?, z: Nothing?) { // TESTCASE NUMBER: 24 fun case_24(a: ((() -> Unit) -> Unit)?, b: (() -> Unit)?, z: Nothing?) = if (a !== z && b !== z) { - a(?")!>b) - , kotlin.Unit>?")!>a.equals(null) - , kotlin.Unit>?")!>a.propT - , kotlin.Unit>?")!>a.propAny - , kotlin.Unit>?")!>a.propNullableT - , kotlin.Unit>?")!>a.propNullableAny - , kotlin.Unit>?")!>a.funT() - , kotlin.Unit>?")!>a.funAny() - , kotlin.Unit>?")!>a.funNullableT() - , kotlin.Unit>?")!>a.funNullableAny() - ?")!>b.equals(null) - ?")!>b.propT - ?")!>b.propAny - ?")!>b.propNullableT - ?")!>b.propNullableAny - ?")!>b.funT() - ?")!>b.funAny() - ?")!>b.funNullableT() - ?")!>b.funNullableAny() + a(? & kotlin.Function0")!>b) + , kotlin.Unit>? & kotlin.Function1, kotlin.Unit>")!>a.equals(null) + , kotlin.Unit>? & kotlin.Function1, kotlin.Unit>")!>a.propT + , kotlin.Unit>? & kotlin.Function1, kotlin.Unit>")!>a.propAny + , kotlin.Unit>? & kotlin.Function1, kotlin.Unit>")!>a.propNullableT + , kotlin.Unit>? & kotlin.Function1, kotlin.Unit>")!>a.propNullableAny + , kotlin.Unit>? & kotlin.Function1, kotlin.Unit>")!>a.funT() + , kotlin.Unit>? & kotlin.Function1, kotlin.Unit>")!>a.funAny() + , kotlin.Unit>? & kotlin.Function1, kotlin.Unit>")!>a.funNullableT() + , kotlin.Unit>? & kotlin.Function1, kotlin.Unit>")!>a.funNullableAny() + ? & kotlin.Function0")!>b.equals(null) + ? & kotlin.Function0")!>b.propT + ? & kotlin.Function0")!>b.propAny + ? & kotlin.Function0")!>b.propNullableT + ? & kotlin.Function0")!>b.propNullableAny + ? & kotlin.Function0")!>b.funT() + ? & kotlin.Function0")!>b.funAny() + ? & kotlin.Function0")!>b.funNullableT() + ? & kotlin.Function0")!>b.funNullableAny() } else z // TESTCASE NUMBER: 25 @@ -489,20 +489,20 @@ fun case_25(b: Boolean, z: Nothing?) { val y = if (b) x else z - if (y !== z || y != implicitNullableNothingProperty) { + if (y !== z || y != implicitNullableNothingProperty) { val z1 = ?")!>y() - if (z1 != z && implicitNullableNothingProperty !== z1) { - ?")!>z1.a - ?")!>z1.equals(null) - ?")!>z1.propT - ?")!>z1.propAny - ?")!>z1.propNullableT - ?")!>z1.propNullableAny - ?")!>z1.funT() - ?")!>z1.funAny() - ?")!>z1.funNullableT() - ?")!>z1.funNullableAny() + if (z1 != z && implicitNullableNothingProperty !== z1) { + ? & ")!>z1.a + ? & ")!>z1.equals(null) + ? & ")!>z1.propT + ? & ")!>z1.propAny + ? & ")!>z1.propNullableT + ? & ")!>z1.propNullableAny + ? & ")!>z1.funT() + ? & ")!>z1.funAny() + ? & ")!>z1.funNullableT() + ? & ")!>z1.funNullableAny() } } } @@ -512,18 +512,18 @@ fun case_26(a: ((Float) -> Int?)?, b: Float?) { var z = null if (a != z == true && b != implicitNullableNothingProperty == true) { - val x = a(b) - if (x != implicitNullableNothingProperty == true || z !== x) { - x - x.equals(null) - x.propT - x.propAny - x.propNullableT - x.propNullableAny - x.funT() - x.funAny() - x.funNullableT() - x.funNullableAny() + val x = a(b) + if (x != implicitNullableNothingProperty == true || z !== x) { + x + x.equals(null) + x.propT + x.propAny + x.propNullableT + x.propNullableAny + x.funT() + x.funAny() + x.funNullableT() + x.funNullableAny() } } } @@ -533,13 +533,13 @@ fun case_27(z: Nothing?) { if (Object.prop_1 == z == true == true == true == true == true == true == true == true == true == true == true == true == true == true) else { Object.prop_1 - Object.prop_1.equals(null) + Object.prop_1.equals(null) Object.prop_1.propT - Object.prop_1.propAny + Object.prop_1.propAny Object.prop_1.propNullableT Object.prop_1.propNullableAny Object.prop_1.funT() - Object.prop_1.funAny() + Object.prop_1.funAny() Object.prop_1.funNullableT() Object.prop_1.funNullableAny() } @@ -548,16 +548,16 @@ fun case_27(z: Nothing?) { // TESTCASE NUMBER: 28 fun case_28(a: DeepObject.A.B.C.D.E.F.G.J?) = if (a != implicitNullableNothingProperty == true == false == false == false == true == false == true == false == false == true == true) { - a.x - a.equals(null) - a.propT - a.propAny - a.propNullableT - a.propNullableAny - a.funT() - a.funAny() - a.funNullableT() - a.funNullableAny() + a.x + a.equals(null) + a.propT + a.propAny + a.propNullableT + a.propNullableAny + a.funT() + a.funAny() + a.funNullableT() + a.funNullableAny() } else -1 /* @@ -614,7 +614,7 @@ fun case_30(a: ((Float) -> Int?)?, b: Float?) { // TESTCASE NUMBER: 31 fun case_31(z1: Boolean?, z: Nothing?) { - if (false || EnumClassWithNullableProperty.A.prop_1 != z && z1 !== z && z1) { + if (false || EnumClassWithNullableProperty.A.prop_1 != z && z1 !== z && z1) { EnumClassWithNullableProperty.A.prop_1 EnumClassWithNullableProperty.A.prop_1.equals(null) EnumClassWithNullableProperty.A.prop_1.propT @@ -653,7 +653,7 @@ fun case_33(a: ((Float) -> Int?)?, b: Float?, c: Boolean?) { } else { val x = a(b) - if (x == z == true && x === z || (c != z && !c)) { + if (x == z == true && x === z || (c != z && !c)) { } else { x @@ -678,7 +678,7 @@ fun case_33(a: ((Float) -> Int?)?, b: Float?, c: Boolean?) { fun case_34(z1: Boolean?) { var z = null - if (true && true && true && true && EnumClassWithNullableProperty.A.prop_1 != implicitNullableNothingProperty && EnumClassWithNullableProperty.A.prop_1 !== null && EnumClassWithNullableProperty.A.prop_1 !== z || z1 != implicitNullableNothingProperty || z1!! && true && true) { + if (true && true && true && true && EnumClassWithNullableProperty.A.prop_1 != implicitNullableNothingProperty && EnumClassWithNullableProperty.A.prop_1 !== null && EnumClassWithNullableProperty.A.prop_1 !== z || z1 != implicitNullableNothingProperty || z1!! && true && true) { } else { EnumClassWithNullableProperty.A.prop_1 @@ -698,7 +698,7 @@ fun case_34(z1: Boolean?) { fun case_35(a: DeepObject.A.B.C.D.E.F.G.J?) { val itest = false - if (true && a != implicitNullableNothingProperty && a !== implicitNullableNothingProperty || itest || !itest || true || !true) { + if (true && a != implicitNullableNothingProperty && a !== implicitNullableNothingProperty || itest || !itest || true || !true) { } else { a @@ -714,8 +714,8 @@ fun case_36(x: Any) { var z = null if (x == z) { - x - x.java + x + x.java } } @@ -737,15 +737,15 @@ fun case_38() { if (Object.prop_2 != z) else { Object.prop_2 - Object.prop_2.java + Object.prop_2.java } } // TESTCASE NUMBER: 39 fun case_39(x: Char?) { if (x == implicitNullableNothingProperty && true) { - x - x.hashCode() + x + x.hashCode() } } @@ -754,7 +754,7 @@ fun case_40() { val x: Unit? = null var z = null - if (x == implicitNullableNothingProperty || z === x) { + if (x == implicitNullableNothingProperty || z === x) { x x.hashCode() } @@ -765,8 +765,8 @@ fun case_41(x: EmptyClass?, z: Nothing?) { val y = true if (x === z && !y) { - x - x.hashCode() + x + x.hashCode() } } @@ -791,8 +791,8 @@ fun case_43(x: TypealiasNullableString) { val z = null if (x == z && x == z) { - x - x.hashCode() + x + x.hashCode() } } @@ -841,9 +841,9 @@ fun case_46(x: TypealiasNullableString?, y: TypealiasNu } else { if (y === nullableNothingProperty) { if (z != nullableStringProperty) { - if (z === t || t == nullableNothingProperty) { - x - x.hashCode() + if (z === t || t == nullableNothingProperty) { + x + x.hashCode() } } } @@ -900,7 +900,7 @@ fun case_49() { fun case_50(x: TypealiasNullableString) { val z1 = null val z2 = null - val t = if (x != z1 && z2 !== x) "" else { + val t = if (x != z1 && z2 !== x) "" else { x x.hashCode() } @@ -911,14 +911,14 @@ fun case_51() { val x: TypealiasNullableNothing = null val z: Nothing? = null - if (x === z || z == x && x == z || false || false || false) { + if (x === z || z == x && x == z || false || false || false) { x x.hashCode() } } // TESTCASE NUMBER: 52 -val case_52 = if (nullableIntProperty !== nullableNothingProperty && nullableNothingProperty != nullableIntProperty) 0 else { +val case_52 = if (nullableIntProperty !== nullableNothingProperty && nullableNothingProperty != nullableIntProperty) 0 else { nullableIntProperty nullableIntProperty.hashCode() } @@ -926,8 +926,8 @@ val case_52 = if (nullableIntProperty !== nullableNothingProperty && nullableNot //TESTCASE NUMBER: 53 fun case_53(a: DeepObject.A.B.C.D.E.F.G.J?) { if (a == DeepObject.prop_2) { - a - a.hashCode() + a + a.hashCode() } } @@ -954,9 +954,9 @@ fun case_54(b: Boolean) { val z = null - if (a != z && a.B54 !== a.z && a.B54.C54 != a.z && a.B54.C54.D54 != a.z && a.B54.C54.D54.x === a.z) { - a.B54.C54.D54.x - a.B54.C54.D54.x.hashCode() + if (a != z && a.B54 !== a.z && a.B54.C54 != a.z && a.B54.C54.D54 != a.z && a.B54.C54.D54.x === a.z) { + a.B54.C54.D54.x + a.B54.C54.D54.x.hashCode() } } @@ -994,8 +994,8 @@ fun case_57(a: (() -> Unit)) { var z = null if (a == z) { - ")!>a - ")!>a.java + & kotlin.Nothing")!>a + & kotlin.Nothing")!>a.java } } @@ -1008,8 +1008,8 @@ fun case_58(a: ((Float) -> Int?)?, b: Float?, z: Nothing?) { ?")!>a b if (a != z) { - ?")!>a - ?")!>a.java + ? & kotlin.Function1")!>a + ? & kotlin.Function1")!>a.java } } } @@ -1055,10 +1055,10 @@ fun case_60(b: Boolean) { val y = if (b) x else nullableNothingProperty if (y != nullableNothingProperty) { - val z = ?")!>y() + val z = ?")!>y() if (z == nullableNothingProperty) { - ?")!>z + ? & kotlin.Nothing?")!>z } } } @@ -1067,16 +1067,16 @@ fun case_60(b: Boolean) { fun case_61(x: Any?) { if (x is Number?) { if (x !== implicitNullableNothingProperty) { - x - x.equals(null) - x.propT - x.propAny - x.propNullableT - x.propNullableAny - x.funT() - x.funAny() - x.funNullableT() - x.funNullableAny() + x + x.equals(null) + x.propT + x.propAny + x.propNullableT + x.propNullableAny + x.funT() + x.funAny() + x.funNullableT() + x.funNullableAny() } } } @@ -1085,16 +1085,16 @@ fun case_61(x: Any?) { fun case_62(x: Any?) { var z = null if (x is Number? && x is Int? && x != z) { - x - x.equals(null) - x.propT - x.propAny - x.propNullableT - x.propNullableAny - x.funT() - x.funAny() - x.funNullableT() - x.funNullableAny() + x + x.equals(null) + x.propT + x.propAny + x.propNullableT + x.propNullableAny + x.funT() + x.funAny() + x.funNullableT() + x.funNullableAny() } } @@ -1107,16 +1107,16 @@ fun case_63(x: Any?, b: Boolean) { if (x is Number?) { if (x !== when (b) { true -> z1; false -> z2; else -> z3 }) { if (x is Int?) { - x - x.equals(null) - x.propT - x.propAny - x.propNullableT - x.propNullableAny - x.funT() - x.funAny() - x.funNullableT() - x.funNullableAny() + x + x.equals(null) + x.propT + x.propAny + x.propNullableT + x.propNullableAny + x.funT() + x.funAny() + x.funNullableT() + x.funNullableAny() } } } @@ -1150,16 +1150,16 @@ fun case_65(x: Any?, z: Nothing?) { if (x is ClassLevel4?) { if (x is ClassLevel5?) { if (x != z) { - x - x.equals(null) - x.propT - x.propAny - x.propNullableT - x.propNullableAny - x.funT() - x.funAny() - x.funNullableT() - x.funNullableAny() + x + x.equals(null) + x.propT + x.propAny + x.propNullableT + x.propNullableAny + x.funT() + x.funAny() + x.funNullableT() + x.funNullableAny() } } } @@ -1178,16 +1178,16 @@ fun case_66(x: Any?, z1: Nothing?, z2: Nothing?, b: Boolean) { if (x is ClassLevel3?) { if (x != if (b) { z1 } else { z2 } && x is ClassLevel4?) { if (x is ClassLevel5?) { - x - x.equals(null) - x.propT - x.propAny - x.propNullableT - x.propNullableAny - x.funT() - x.funAny() - x.funNullableT() - x.funNullableAny() + x + x.equals(null) + x.propT + x.propAny + x.propNullableT + x.propNullableAny + x.funT() + x.funAny() + x.funNullableT() + x.funNullableAny() } } } @@ -1201,16 +1201,16 @@ fun case_67(x: Any?) { if (x is ClassLevel1? && x is ClassLevel2? && x is ClassLevel3?) { if (x is ClassLevel4? && x != (fun (): Nothing? { return z })() && x is ClassLevel5?) { - x - x.equals(null) - x.propT - x.propAny - x.propNullableT - x.propNullableAny - x.funT() - x.funAny() - x.funNullableT() - x.funNullableAny() + x + x.equals(null) + x.propT + x.propAny + x.propNullableT + x.propNullableAny + x.funT() + x.funAny() + x.funNullableT() + x.funNullableAny() } } } @@ -1219,16 +1219,16 @@ fun case_67(x: Any?) { fun case_68(x: Any?, z: Nothing?) { if (x is ClassLevel1? && x is ClassLevel2? && x is ClassLevel3?) { if (x is ClassLevel4? && x != (fun (): Nothing? { return z })() && x is ClassLevel5?) { - x - x.equals(null) - x.propT - x.propAny - x.propNullableT - x.propNullableAny - x.funT() - x.funAny() - x.funNullableT() - x.funNullableAny() + x + x.equals(null) + x.propT + x.propAny + x.propNullableT + x.propNullableAny + x.funT() + x.funAny() + x.funNullableT() + x.funNullableAny() } } } @@ -1239,16 +1239,16 @@ fun case_68(x: Any?, z: Nothing?) { */ fun case_69(x: Any?, z: Nothing?) { if (x is ClassLevel1? && x is ClassLevel2? && x is ClassLevel3? && x is ClassLevel4? && x != try { z } catch (e: Exception) { z } && x is ClassLevel5?) { - x - x.equals(null) - x.propT - x.propAny - x.propNullableT - x.propNullableAny - x.funT() - x.funAny() - x.funNullableT() - x.funNullableAny() + x + x.equals(null) + x.propT + x.propAny + x.propNullableT + x.propNullableAny + x.funT() + x.funAny() + x.funNullableT() + x.funNullableAny() } } @@ -1258,28 +1258,28 @@ fun case_70(x: Any?) { if (x is ClassLevel4?) { } else if (x is ClassLevel5? && x != nullableNothingProperty || x != implicitNullableNothingProperty) { - x - x.equals(null) - x.propT - x.propAny - x.propNullableT - x.propNullableAny - x.funT() - x.funAny() - x.funNullableT() - x.funNullableAny() + x + x.equals(null) + x.propT + x.propAny + x.propNullableT + x.propNullableAny + x.funT() + x.funAny() + x.funNullableT() + x.funNullableAny() } } else if (x is ClassLevel4? && x !== nullableNothingProperty && x is ClassLevel5?) { - x - x.equals(null) - x.propT - x.propAny - x.propNullableT - x.propNullableAny - x.funT() - x.funAny() - x.funNullableT() - x.funNullableAny() + x + x.equals(null) + x.propT + x.propAny + x.propNullableT + x.propNullableAny + x.funT() + x.funAny() + x.funNullableT() + x.funNullableAny() } } @@ -1296,12 +1296,12 @@ fun case_71(t: Any?) { if (t is Interface1?) { if (t is Interface2?) { if (t != z2) { - t - t.itest1() - t.itest2() - t.itest() + t + t.itest1() + t.itest2() + t.itest() - t.let { it.itest1(); it.itest2() } + t.let { it.itest1(); it.itest2() } } } } @@ -1342,12 +1342,12 @@ fun case_73(t: Any?) { if (t is ClassLevel2? && t is Interface1?) { if (t !is Interface3?) {} else if (false) { if (t != `null`) { - t.itest2() - t.itest1() - t.itest() - t.test1() - t.test2() - t + t.itest2() + t.itest1() + t.itest() + t.test1() + t.test2() + t } } } @@ -1364,15 +1364,15 @@ fun case_73(t: Any?) { fun case_74(t: Any?) { if (t is Interface2?) { if (t is ClassLevel1?) { - if (t == implicitNullableNothingProperty || t === implicitNullableNothingProperty || t !is Interface1?) else { + if (t == implicitNullableNothingProperty || t === implicitNullableNothingProperty || t !is Interface1?) else { if (t is ClassLevel2?) { if (t is Interface3?) { - t.itest2() - t.itest1() - t.itest() - t.test1() - t.test2() - t + t.itest2() + t.itest1() + t.itest() + t.test1() + t.test2() + t } } } @@ -1390,12 +1390,12 @@ fun case_75(t: Any?, z: Nothing?) { if (t !is ClassLevel2? || t !is ClassLevel1?) else { if (t === ((((((z)))))) || t !is Interface1?) else { if (t !is Interface2? || t !is Interface3?) {} else { - t.itest2() - t.itest1() - t.itest() - t.test1() - t.test2() - t + t.itest2() + t.itest1() + t.itest() + t.test1() + t.test2() + t } } } diff --git a/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/61.fir.kt b/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/61.fir.kt index 845ade6e46a..8a9ae8436e3 100644 --- a/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/61.fir.kt +++ b/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/61.fir.kt @@ -157,8 +157,8 @@ class Case11 { var y: String? = "xyz" if (y == case_12) throw Exception() - y - y.length + y + y.length } constructor() } diff --git a/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/7.fir.kt b/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/7.fir.kt index fbf882919f7..ff43fa00cb2 100644 --- a/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/7.fir.kt +++ b/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/7.fir.kt @@ -265,7 +265,7 @@ fun case_14() { // TESTCASE NUMBER: 15 fun case_15(x: TypealiasString?) { var y = null - val t = if (x === null || x == y && x === y) "" else { + val t = if (x === null || x == y && x === y) "" else { x.equals(null) x.propT x.propAny @@ -285,8 +285,8 @@ fun case_16() { val y: Nothing? = null if (x != null || x !== null || x != y) { - x - x.hashCode() + x + x.hashCode() } } @@ -345,17 +345,17 @@ fun case_19(b: Boolean) { } } else null - if (a != null && a.B19 != a.y && a.B19.C19 != a.y && a.B19.C19.D19 != a.y && a.B19.C19.D19.x != a.y) { - a.B19.C19.D19.x - a.B19.C19.D19.x.equals(null) - a.B19.C19.D19.x.propT - a.B19.C19.D19.x.propAny - a.B19.C19.D19.x.propNullableT - a.B19.C19.D19.x.propNullableAny - a.B19.C19.D19.x.funT() - a.B19.C19.D19.x.funAny() - a.B19.C19.D19.x.funNullableT() - a.B19.C19.D19.x.funNullableAny() + if (a != null && a.B19 != a.y && a.B19.C19 != a.y && a.B19.C19.D19 != a.y && a.B19.C19.D19.x != a.y) { + a.B19.C19.D19.x + a.B19.C19.D19.x.equals(null) + a.B19.C19.D19.x.propT + a.B19.C19.D19.x.propAny + a.B19.C19.D19.x.propNullableT + a.B19.C19.D19.x.propNullableAny + a.B19.C19.D19.x.funT() + a.B19.C19.D19.x.funAny() + a.B19.C19.D19.x.funNullableT() + a.B19.C19.D19.x.funNullableAny() } } @@ -374,13 +374,13 @@ fun case_20(b: Boolean) { if (a.B19.C19.D19 !== null || a.y != a.B19.C19.D19) { a.B19.C19.D19 - a.B19.C19.D19.equals(null) + a.B19.C19.D19.equals(null) a.B19.C19.D19.propT - a.B19.C19.D19.propAny + a.B19.C19.D19.propAny a.B19.C19.D19.propNullableT a.B19.C19.D19.propNullableAny a.B19.C19.D19.funT() - a.B19.C19.D19.funAny() + a.B19.C19.D19.funAny() a.B19.C19.D19.funNullableT() a.B19.C19.D19.funNullableAny() } @@ -407,34 +407,34 @@ fun case_21() { fun case_22(a: (() -> Unit)?) { var y = null if (a != null || y != a) { - a() - ?")!>a.equals(null) - ?")!>a.propT - ?")!>a.propAny - ?")!>a.propNullableT - ?")!>a.propNullableAny - ?")!>a.funT() - ?")!>a.funAny() - ?")!>a.funNullableT() - ?")!>a.funNullableAny() + a() + ? & kotlin.Function0")!>a.equals(null) + ? & kotlin.Function0")!>a.propT + ? & kotlin.Function0")!>a.propAny + ? & kotlin.Function0")!>a.propNullableT + ? & kotlin.Function0")!>a.propNullableAny + ? & kotlin.Function0")!>a.funT() + ? & kotlin.Function0")!>a.funAny() + ? & kotlin.Function0")!>a.funNullableT() + ? & kotlin.Function0")!>a.funNullableAny() } } // TESTCASE NUMBER: 23 fun case_23(a: ((Float) -> Int?)?, b: Float?, c: Nothing?) { if (a != null && b !== null || a != c && b !== c) { - val x = a(b) + val x = a(b) if (x != null || c !== x) { - x - x.equals(null) - x.propT - x.propAny - x.propNullableT - x.propNullableAny - x.funT() - x.funAny() - x.funNullableT() - x.funNullableAny() + x + x.equals(null) + x.propT + x.propAny + x.propNullableT + x.propNullableAny + x.funT() + x.funAny() + x.funNullableT() + x.funNullableAny() } } } @@ -442,25 +442,25 @@ fun case_23(a: ((Float) -> Int?)?, b: Float?, c: Nothing?) { // TESTCASE NUMBER: 24 fun case_24(a: ((() -> Unit) -> Unit)?, b: (() -> Unit)?) = if (a !== null && b !== null || implicitNullableNothingProperty != a && nullableNothingProperty !== b) { - a(?")!>b) - , kotlin.Unit>?")!>a.equals(null) - , kotlin.Unit>?")!>a.propT - , kotlin.Unit>?")!>a.propAny - , kotlin.Unit>?")!>a.propNullableT - , kotlin.Unit>?")!>a.propNullableAny - , kotlin.Unit>?")!>a.funT() - , kotlin.Unit>?")!>a.funAny() - , kotlin.Unit>?")!>a.funNullableT() - , kotlin.Unit>?")!>a.funNullableAny() - ?")!>b.equals(null) - ?")!>b.propT - ?")!>b.propAny - ?")!>b.propNullableT - ?")!>b.propNullableAny - ?")!>b.funT() - ?")!>b.funAny() - ?")!>b.funNullableT() - ?")!>b.funNullableAny() + a(? & kotlin.Function0")!>b) + , kotlin.Unit>? & kotlin.Function1, kotlin.Unit>")!>a.equals(null) + , kotlin.Unit>? & kotlin.Function1, kotlin.Unit>")!>a.propT + , kotlin.Unit>? & kotlin.Function1, kotlin.Unit>")!>a.propAny + , kotlin.Unit>? & kotlin.Function1, kotlin.Unit>")!>a.propNullableT + , kotlin.Unit>? & kotlin.Function1, kotlin.Unit>")!>a.propNullableAny + , kotlin.Unit>? & kotlin.Function1, kotlin.Unit>")!>a.funT() + , kotlin.Unit>? & kotlin.Function1, kotlin.Unit>")!>a.funAny() + , kotlin.Unit>? & kotlin.Function1, kotlin.Unit>")!>a.funNullableT() + , kotlin.Unit>? & kotlin.Function1, kotlin.Unit>")!>a.funNullableAny() + ? & kotlin.Function0")!>b.equals(null) + ? & kotlin.Function0")!>b.propT + ? & kotlin.Function0")!>b.propAny + ? & kotlin.Function0")!>b.propNullableT + ? & kotlin.Function0")!>b.propNullableAny + ? & kotlin.Function0")!>b.funT() + ? & kotlin.Function0")!>b.funAny() + ? & kotlin.Function0")!>b.funNullableT() + ? & kotlin.Function0")!>b.funNullableAny() } else null // TESTCASE NUMBER: 25 @@ -475,8 +475,8 @@ fun case_25(b: Boolean) { val y = if (b) x else null if (y !== null || x()!!.b != y) { - if (x()!!.b != y) { - val z = ?")!>y() + if (x()!!.b != y) { + val z = ?")!>y() if (z != null) { ? & ")!>z.a @@ -499,7 +499,7 @@ fun case_26(a: ((Float) -> Int?)?, b: Float?) { var c: Nothing? = null if (a != null == true && b != null == true || c != a == true && b != c == true) { - val x = a(b) + val x = a(b) if (x != null == true) { x x.equals(null) @@ -554,7 +554,7 @@ fun case_29(a: Int?, b: Nothing?, c: Int = if (a === b) 0 else a) { } // TESTCASE NUMBER: 30 -fun case_30(a: Int?, b: Nothing?, c: Int = if (a === b || a == null) 0 else a) { +fun case_30(a: Int?, b: Nothing?, c: Int = if (a === b || a == null) 0 else a) { a b }