[FIR] Consider Nothing? as null constant in DFA, ^KT-44561 Fixed

This commit is contained in:
Ivan Kochurkin
2021-12-15 19:26:07 +03:00
committed by teamcity
parent 68f3ab2622
commit 84927e10b0
19 changed files with 926 additions and 922 deletions
@@ -57,16 +57,16 @@ fun case_4(x: Number?) {
fun case_5(x: Char?, y: Nothing?, f: Boolean) {
do {
if (x != y) else continue
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Char?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Char?")!>x<!><!UNSAFE_CALL!>.<!>equals(null)
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Char?")!>x<!>.propT
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Char?")!>x<!><!UNSAFE_CALL!>.<!>propAny
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Char?")!>x<!>.propNullableT
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Char?")!>x<!>.propNullableAny
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Char?")!>x<!>.funT()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Char?")!>x<!><!UNSAFE_CALL!>.<!>funAny()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Char?")!>x<!>.funNullableT()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Char?")!>x<!>.funNullableAny()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Char? & kotlin.Char")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Char? & kotlin.Char")!>x<!>.equals(null)
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Char? & kotlin.Char")!>x<!>.propT
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Char? & kotlin.Char")!>x<!>.propAny
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Char? & kotlin.Char")!>x<!>.propNullableT
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Char? & kotlin.Char")!>x<!>.propNullableAny
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Char? & kotlin.Char")!>x<!>.funT()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Char? & kotlin.Char")!>x<!>.funAny()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Char? & kotlin.Char")!>x<!>.funNullableT()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Char? & kotlin.Char")!>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 }
<!DEBUG_INFO_EXPRESSION_TYPE("Object?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("Object?")!>x<!><!UNSAFE_CALL!>.<!>equals(null)
<!DEBUG_INFO_EXPRESSION_TYPE("Object?")!>x<!>.propT
<!DEBUG_INFO_EXPRESSION_TYPE("Object?")!>x<!><!UNSAFE_CALL!>.<!>propAny
<!DEBUG_INFO_EXPRESSION_TYPE("Object?")!>x<!>.propNullableT
<!DEBUG_INFO_EXPRESSION_TYPE("Object?")!>x<!>.propNullableAny
<!DEBUG_INFO_EXPRESSION_TYPE("Object?")!>x<!>.funT()
<!DEBUG_INFO_EXPRESSION_TYPE("Object?")!>x<!><!UNSAFE_CALL!>.<!>funAny()
<!DEBUG_INFO_EXPRESSION_TYPE("Object?")!>x<!>.funNullableT()
<!DEBUG_INFO_EXPRESSION_TYPE("Object?")!>x<!>.funNullableAny()
<!DEBUG_INFO_EXPRESSION_TYPE("Object? & Object")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("Object? & Object")!>x<!>.equals(null)
<!DEBUG_INFO_EXPRESSION_TYPE("Object? & Object")!>x<!>.propT
<!DEBUG_INFO_EXPRESSION_TYPE("Object? & Object")!>x<!>.propAny
<!DEBUG_INFO_EXPRESSION_TYPE("Object? & Object")!>x<!>.propNullableT
<!DEBUG_INFO_EXPRESSION_TYPE("Object? & Object")!>x<!>.propNullableAny
<!DEBUG_INFO_EXPRESSION_TYPE("Object? & Object")!>x<!>.funT()
<!DEBUG_INFO_EXPRESSION_TYPE("Object? & Object")!>x<!>.funAny()
<!DEBUG_INFO_EXPRESSION_TYPE("Object? & Object")!>x<!>.funNullableT()
<!DEBUG_INFO_EXPRESSION_TYPE("Object? & Object")!>x<!>.funNullableAny()
}
}
@@ -91,16 +91,16 @@ fun case_6(x: Object?, f: Boolean) {
fun case_7(x: Class?, list: List<Int>) {
for (element in list) {
if (x === implicitNullableNothingProperty || false || false || false) { break }
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!><!UNSAFE_CALL!>.<!>equals(null)
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>.propT
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!><!UNSAFE_CALL!>.<!>propAny
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>.propNullableT
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>.propNullableAny
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>.funT()
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!><!UNSAFE_CALL!>.<!>funAny()
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>.funNullableT()
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>.funNullableAny()
<!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class")!>x<!>.equals(null)
<!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class")!>x<!>.propT
<!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class")!>x<!>.propAny
<!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class")!>x<!>.propNullableT
<!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class")!>x<!>.propNullableAny
<!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class")!>x<!>.funT()
<!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class")!>x<!>.funAny()
<!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class")!>x<!>.funNullableT()
<!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class")!>x<!>.funNullableAny()
}
}
@@ -108,8 +108,8 @@ fun case_7(x: Class?, list: List<Int>) {
fun case_8(x: Int?) {
for (i in 0..10) {
if (false || false || false || x == nullableNothingProperty) continue
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int?")!>x<!><!UNSAFE_CALL!>.<!>inv()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int? & kotlin.Int")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int? & kotlin.Int")!>x<!>.inv()
}
}
@@ -117,8 +117,8 @@ fun case_8(x: Int?) {
fun case_9(list: List<Int?>) {
for (element in list) {
if (element != implicitNullableNothingProperty && true && true && true) else { break }
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int?")!>element<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int?")!>element<!><!UNSAFE_CALL!>.<!>inv()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int? & kotlin.Int")!>element<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int? & kotlin.Int")!>element<!>.inv()
}
}
@@ -204,10 +204,10 @@ fun case_15(map: MutableMap<Int?, Int?>, y: Nothing?) {
for ((k, v) in map) {
if (k != y) else break
if (v != y) else continue
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int?")!>k<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int?")!>k<!><!UNSAFE_CALL!>.<!>inv()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int?")!>v<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int?")!>v<!><!UNSAFE_CALL!>.<!>inv()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int? & kotlin.Int")!>k<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int? & kotlin.Int")!>k<!>.inv()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int? & kotlin.Int")!>v<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int? & kotlin.Int")!>v<!>.inv()
}
}
@@ -215,10 +215,10 @@ fun case_15(map: MutableMap<Int?, Int?>, y: Nothing?) {
fun case_16(map: Map<Int?, Int?>) {
for ((k, v) in map) {
if (k !== implicitNullableNothingProperty && v !== implicitNullableNothingProperty) else { continue }
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int?")!>k<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int?")!>k<!><!UNSAFE_CALL!>.<!>inv()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int?")!>v<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int?")!>v<!><!UNSAFE_CALL!>.<!>inv()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int? & kotlin.Int")!>k<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int? & kotlin.Int")!>k<!>.inv()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int? & kotlin.Int")!>v<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int? & kotlin.Int")!>v<!>.inv()
}
}
@@ -226,16 +226,16 @@ fun case_16(map: Map<Int?, Int?>) {
fun <T>case_17(x: T?, f: Boolean) {
while (f) {
if (x === implicitNullableNothingProperty || false) { break }
<!DEBUG_INFO_EXPRESSION_TYPE("T?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("T?")!>x<!><!UNSAFE_CALL!>.<!>equals(null)
<!DEBUG_INFO_EXPRESSION_TYPE("T?")!>x<!>.propT
<!DEBUG_INFO_EXPRESSION_TYPE("T?")!>x<!><!UNSAFE_CALL!>.<!>propAny
<!DEBUG_INFO_EXPRESSION_TYPE("T?")!>x<!>.propNullableT
<!DEBUG_INFO_EXPRESSION_TYPE("T?")!>x<!>.propNullableAny
<!DEBUG_INFO_EXPRESSION_TYPE("T?")!>x<!>.funT()
<!DEBUG_INFO_EXPRESSION_TYPE("T?")!>x<!><!UNSAFE_CALL!>.<!>funAny()
<!DEBUG_INFO_EXPRESSION_TYPE("T?")!>x<!>.funNullableT()
<!DEBUG_INFO_EXPRESSION_TYPE("T?")!>x<!>.funNullableAny()
<!DEBUG_INFO_EXPRESSION_TYPE("T? & T?!!")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("T? & T?!!")!>x<!>.equals(null)
<!DEBUG_INFO_EXPRESSION_TYPE("T? & T?!!")!>x<!>.propT
<!DEBUG_INFO_EXPRESSION_TYPE("T? & T?!!")!>x<!>.propAny
<!DEBUG_INFO_EXPRESSION_TYPE("T? & T?!!")!>x<!>.propNullableT
<!DEBUG_INFO_EXPRESSION_TYPE("T? & T?!!")!>x<!>.propNullableAny
<!DEBUG_INFO_EXPRESSION_TYPE("T? & T?!!")!>x<!>.funT()
<!DEBUG_INFO_EXPRESSION_TYPE("T? & T?!!")!>x<!>.funAny()
<!DEBUG_INFO_EXPRESSION_TYPE("T? & T?!!")!>x<!>.funNullableT()
<!DEBUG_INFO_EXPRESSION_TYPE("T? & T?!!")!>x<!>.funNullableAny()
}
}
@@ -243,16 +243,16 @@ fun <T>case_17(x: T?, f: Boolean) {
fun <T>case_18(x: T, f: Boolean) {
while (f) {
if (false || false || false || x == nullableNothingProperty) break
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!><!UNSAFE_CALL!>.<!>equals(null)
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.propT
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!><!UNSAFE_CALL!>.<!>propAny
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.propNullableT
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.propNullableAny
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.funT()
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!><!UNSAFE_CALL!>.<!>funAny()
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.funNullableT()
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.funNullableAny()
<!DEBUG_INFO_EXPRESSION_TYPE("T & T!!")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("T & T!!")!>x<!>.equals(null)
<!DEBUG_INFO_EXPRESSION_TYPE("T & T!!")!>x<!>.propT
<!DEBUG_INFO_EXPRESSION_TYPE("T & T!!")!>x<!>.propAny
<!DEBUG_INFO_EXPRESSION_TYPE("T & T!!")!>x<!>.propNullableT
<!DEBUG_INFO_EXPRESSION_TYPE("T & T!!")!>x<!>.propNullableAny
<!DEBUG_INFO_EXPRESSION_TYPE("T & T!!")!>x<!>.funT()
<!DEBUG_INFO_EXPRESSION_TYPE("T & T!!")!>x<!>.funAny()
<!DEBUG_INFO_EXPRESSION_TYPE("T & T!!")!>x<!>.funNullableT()
<!DEBUG_INFO_EXPRESSION_TYPE("T & T!!")!>x<!>.funNullableAny()
}
}
@@ -260,26 +260,26 @@ fun <T>case_18(x: T, f: Boolean) {
fun <K, V>case_19(map: MutableMap<K, V>, y: Nothing?) {
for ((k, v) in map) {
if (k !== implicitNullableNothingProperty && true && v != y) else { break }
<!DEBUG_INFO_EXPRESSION_TYPE("K")!>k<!>
<!DEBUG_INFO_EXPRESSION_TYPE("K")!>k<!><!UNSAFE_CALL!>.<!>equals(null)
<!DEBUG_INFO_EXPRESSION_TYPE("K")!>k<!>.propT
<!DEBUG_INFO_EXPRESSION_TYPE("K")!>k<!><!UNSAFE_CALL!>.<!>propAny
<!DEBUG_INFO_EXPRESSION_TYPE("K")!>k<!>.propNullableT
<!DEBUG_INFO_EXPRESSION_TYPE("K")!>k<!>.propNullableAny
<!DEBUG_INFO_EXPRESSION_TYPE("K")!>k<!>.funT()
<!DEBUG_INFO_EXPRESSION_TYPE("K")!>k<!><!UNSAFE_CALL!>.<!>funAny()
<!DEBUG_INFO_EXPRESSION_TYPE("K")!>k<!>.funNullableT()
<!DEBUG_INFO_EXPRESSION_TYPE("K")!>k<!>.funNullableAny()
<!DEBUG_INFO_EXPRESSION_TYPE("V")!>v<!>
<!DEBUG_INFO_EXPRESSION_TYPE("V")!>v<!><!UNSAFE_CALL!>.<!>equals(null)
<!DEBUG_INFO_EXPRESSION_TYPE("V")!>v<!>.propT
<!DEBUG_INFO_EXPRESSION_TYPE("V")!>v<!><!UNSAFE_CALL!>.<!>propAny
<!DEBUG_INFO_EXPRESSION_TYPE("V")!>v<!>.propNullableT
<!DEBUG_INFO_EXPRESSION_TYPE("V")!>v<!>.propNullableAny
<!DEBUG_INFO_EXPRESSION_TYPE("V")!>v<!>.funT()
<!DEBUG_INFO_EXPRESSION_TYPE("V")!>v<!><!UNSAFE_CALL!>.<!>funAny()
<!DEBUG_INFO_EXPRESSION_TYPE("V")!>v<!>.funNullableT()
<!DEBUG_INFO_EXPRESSION_TYPE("V")!>v<!>.funNullableAny()
<!DEBUG_INFO_EXPRESSION_TYPE("K & K!!")!>k<!>
<!DEBUG_INFO_EXPRESSION_TYPE("K & K!!")!>k<!>.equals(null)
<!DEBUG_INFO_EXPRESSION_TYPE("K & K!!")!>k<!>.propT
<!DEBUG_INFO_EXPRESSION_TYPE("K & K!!")!>k<!>.propAny
<!DEBUG_INFO_EXPRESSION_TYPE("K & K!!")!>k<!>.propNullableT
<!DEBUG_INFO_EXPRESSION_TYPE("K & K!!")!>k<!>.propNullableAny
<!DEBUG_INFO_EXPRESSION_TYPE("K & K!!")!>k<!>.funT()
<!DEBUG_INFO_EXPRESSION_TYPE("K & K!!")!>k<!>.funAny()
<!DEBUG_INFO_EXPRESSION_TYPE("K & K!!")!>k<!>.funNullableT()
<!DEBUG_INFO_EXPRESSION_TYPE("K & K!!")!>k<!>.funNullableAny()
<!DEBUG_INFO_EXPRESSION_TYPE("V & V!!")!>v<!>
<!DEBUG_INFO_EXPRESSION_TYPE("V & V!!")!>v<!>.equals(null)
<!DEBUG_INFO_EXPRESSION_TYPE("V & V!!")!>v<!>.propT
<!DEBUG_INFO_EXPRESSION_TYPE("V & V!!")!>v<!>.propAny
<!DEBUG_INFO_EXPRESSION_TYPE("V & V!!")!>v<!>.propNullableT
<!DEBUG_INFO_EXPRESSION_TYPE("V & V!!")!>v<!>.propNullableAny
<!DEBUG_INFO_EXPRESSION_TYPE("V & V!!")!>v<!>.funT()
<!DEBUG_INFO_EXPRESSION_TYPE("V & V!!")!>v<!>.funAny()
<!DEBUG_INFO_EXPRESSION_TYPE("V & V!!")!>v<!>.funNullableT()
<!DEBUG_INFO_EXPRESSION_TYPE("V & V!!")!>v<!>.funNullableAny()
}
}
@@ -376,16 +376,16 @@ fun <T> case_23(x: Inv<in T>?) {
fun <T> case_24(x: Inv<out T?>?, y: Nothing?) {
do {
if (x !== y && true) else continue
<!DEBUG_INFO_EXPRESSION_TYPE("Inv<out T?>?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("Inv<out T?>?")!>x<!><!UNSAFE_CALL!>.<!>equals(null)
<!DEBUG_INFO_EXPRESSION_TYPE("Inv<out T?>?")!>x<!>.propT
<!DEBUG_INFO_EXPRESSION_TYPE("Inv<out T?>?")!>x<!><!UNSAFE_CALL!>.<!>propAny
<!DEBUG_INFO_EXPRESSION_TYPE("Inv<out T?>?")!>x<!>.propNullableT
<!DEBUG_INFO_EXPRESSION_TYPE("Inv<out T?>?")!>x<!>.propNullableAny
<!DEBUG_INFO_EXPRESSION_TYPE("Inv<out T?>?")!>x<!>.funT()
<!DEBUG_INFO_EXPRESSION_TYPE("Inv<out T?>?")!>x<!><!UNSAFE_CALL!>.<!>funAny()
<!DEBUG_INFO_EXPRESSION_TYPE("Inv<out T?>?")!>x<!>.funNullableT()
<!DEBUG_INFO_EXPRESSION_TYPE("Inv<out T?>?")!>x<!>.funNullableAny()
<!DEBUG_INFO_EXPRESSION_TYPE("Inv<out T?>? & Inv<out T?>")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("Inv<out T?>? & Inv<out T?>")!>x<!>.equals(null)
<!DEBUG_INFO_EXPRESSION_TYPE("Inv<out T?>? & Inv<out T?>")!>x<!>.propT
<!DEBUG_INFO_EXPRESSION_TYPE("Inv<out T?>? & Inv<out T?>")!>x<!>.propAny
<!DEBUG_INFO_EXPRESSION_TYPE("Inv<out T?>? & Inv<out T?>")!>x<!>.propNullableT
<!DEBUG_INFO_EXPRESSION_TYPE("Inv<out T?>? & Inv<out T?>")!>x<!>.propNullableAny
<!DEBUG_INFO_EXPRESSION_TYPE("Inv<out T?>? & Inv<out T?>")!>x<!>.funT()
<!DEBUG_INFO_EXPRESSION_TYPE("Inv<out T?>? & Inv<out T?>")!>x<!>.funAny()
<!DEBUG_INFO_EXPRESSION_TYPE("Inv<out T?>? & Inv<out T?>")!>x<!>.funNullableT()
<!DEBUG_INFO_EXPRESSION_TYPE("Inv<out T?>? & Inv<out T?>")!>x<!>.funNullableAny()
} while (true)
}
@@ -397,15 +397,15 @@ fun <T> case_25(x: Inv<out T?>?, y: Nothing?, z: List<Int>) {
} finally {
continue
}
<!DEBUG_INFO_EXPRESSION_TYPE("Inv<out T?>?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("Inv<out T?>?")!>x<!><!UNSAFE_CALL!>.<!>equals(null)
<!DEBUG_INFO_EXPRESSION_TYPE("Inv<out T?>?")!>x<!>.propT
<!DEBUG_INFO_EXPRESSION_TYPE("Inv<out T?>?")!>x<!><!UNSAFE_CALL!>.<!>propAny
<!DEBUG_INFO_EXPRESSION_TYPE("Inv<out T?>?")!>x<!>.propNullableT
<!DEBUG_INFO_EXPRESSION_TYPE("Inv<out T?>?")!>x<!>.propNullableAny
<!DEBUG_INFO_EXPRESSION_TYPE("Inv<out T?>?")!>x<!>.funT()
<!DEBUG_INFO_EXPRESSION_TYPE("Inv<out T?>?")!>x<!><!UNSAFE_CALL!>.<!>funAny()
<!DEBUG_INFO_EXPRESSION_TYPE("Inv<out T?>?")!>x<!>.funNullableT()
<!DEBUG_INFO_EXPRESSION_TYPE("Inv<out T?>?")!>x<!>.funNullableAny()
<!DEBUG_INFO_EXPRESSION_TYPE("Inv<out T?>? & Inv<out T?>")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("Inv<out T?>? & Inv<out T?>")!>x<!>.equals(null)
<!DEBUG_INFO_EXPRESSION_TYPE("Inv<out T?>? & Inv<out T?>")!>x<!>.propT
<!DEBUG_INFO_EXPRESSION_TYPE("Inv<out T?>? & Inv<out T?>")!>x<!>.propAny
<!DEBUG_INFO_EXPRESSION_TYPE("Inv<out T?>? & Inv<out T?>")!>x<!>.propNullableT
<!DEBUG_INFO_EXPRESSION_TYPE("Inv<out T?>? & Inv<out T?>")!>x<!>.propNullableAny
<!DEBUG_INFO_EXPRESSION_TYPE("Inv<out T?>? & Inv<out T?>")!>x<!>.funT()
<!DEBUG_INFO_EXPRESSION_TYPE("Inv<out T?>? & Inv<out T?>")!>x<!>.funAny()
<!DEBUG_INFO_EXPRESSION_TYPE("Inv<out T?>? & Inv<out T?>")!>x<!>.funNullableT()
<!DEBUG_INFO_EXPRESSION_TYPE("Inv<out T?>? & Inv<out T?>")!>x<!>.funNullableAny()
}
}