[FIR] Don't create smartcast node if smartcasted type is equal to original type

This commit is contained in:
Dmitriy Novozhilov
2021-02-19 17:47:44 +03:00
parent 1c0d862e40
commit 469252f6b4
30 changed files with 272 additions and 271 deletions
@@ -243,11 +243,12 @@ private fun BodyResolveComponents.typeFromSymbol(symbol: AbstractFirBasedSymbol<
fun BodyResolveComponents.transformQualifiedAccessUsingSmartcastInfo(qualifiedAccessExpression: FirQualifiedAccessExpression): FirQualifiedAccessExpression {
val typesFromSmartCast = dataFlowAnalyzer.getTypeUsingSmartcastInfo(qualifiedAccessExpression) ?: return qualifiedAccessExpression
val originalType = qualifiedAccessExpression.resultType.coneType
val allTypes = typesFromSmartCast.also {
it += qualifiedAccessExpression.resultType.coneType
it += originalType
}
val intersectedType = ConeTypeIntersector.intersectTypes(session.inferenceComponents.ctx, allTypes)
// TODO: add check that intersectedType is not equal to original type
if (intersectedType == originalType) return qualifiedAccessExpression
val intersectedTypeRef = buildResolvedTypeRef {
source = qualifiedAccessExpression.resultType.source?.fakeElement(FirFakeSourceElementKind.SmartCastedTypeRef)
type = intersectedType
@@ -3,7 +3,7 @@ fun <R : Any?> scopedFlow(@BuilderInference block: @ExtensionFunctionType Suspen
return flow<R>(block = local suspend fun FlowCollector<R>.<anonymous>() {
val collector: FlowCollector<ErrorType> = <this>
flowScope<Unit>(block = local suspend fun CoroutineScope.<anonymous>() {
block.invoke(p1 = <this>, p2 = collector /*as FlowCollector<ErrorType> */)
block.invoke(p1 = <this>, p2 = collector)
}
)
}
@@ -141,3 +141,4 @@ interface SendChannel<in E : Any?> {
abstract suspend fun send(e: E)
}
@@ -25,8 +25,7 @@ FILE fqName:<root> fileName:/castsInsideCoroutineInference.kt
CALL 'public abstract fun invoke (p1: P1 of kotlin.coroutines.SuspendFunction2, p2: P2 of kotlin.coroutines.SuspendFunction2): R of kotlin.coroutines.SuspendFunction2 [suspend,operator] declared in kotlin.coroutines.SuspendFunction2' type=kotlin.Unit origin=null
$this: GET_VAR 'block: @[ExtensionFunctionType] kotlin.coroutines.SuspendFunction2<<root>.CoroutineScope, <root>.FlowCollector<R of <root>.scopedFlow>, kotlin.Unit> declared in <root>.scopedFlow' type=@[ExtensionFunctionType] kotlin.coroutines.SuspendFunction2<<root>.CoroutineScope, <root>.FlowCollector<R of <root>.scopedFlow>, kotlin.Unit> origin=VARIABLE_AS_FUNCTION
p1: GET_VAR '<this>: <root>.CoroutineScope declared in <root>.scopedFlow.<anonymous>.<anonymous>' type=<root>.CoroutineScope origin=null
p2: TYPE_OP type=<root>.FlowCollector<IrErrorType> origin=IMPLICIT_CAST typeOperand=<root>.FlowCollector<IrErrorType>
GET_VAR 'val collector: <root>.FlowCollector<IrErrorType> [val] declared in <root>.scopedFlow.<anonymous>' type=<root>.FlowCollector<R of <root>.scopedFlow> origin=null
p2: GET_VAR 'val collector: <root>.FlowCollector<IrErrorType> [val] declared in <root>.scopedFlow.<anonymous>' type=<root>.FlowCollector<R of <root>.scopedFlow> origin=null
FUN name:onCompletion visibility:public modality:FINAL <T> ($receiver:<root>.Flow<T of <root>.onCompletion>, action:@[ExtensionFunctionType] kotlin.coroutines.SuspendFunction2<<root>.FlowCollector<T of <root>.onCompletion>, kotlin.Throwable?, kotlin.Unit>) returnType:<root>.Flow<T of <root>.onCompletion>
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
$receiver: VALUE_PARAMETER name:<this> type:<root>.Flow<T of <root>.onCompletion>
@@ -25,8 +25,8 @@ fun case_3() {
var x: Boolean? = true
if (<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean?")!>x<!> is Boolean) {
funWithAnyArg(try { x = null; true } catch (e: Exception) { false })
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean? & kotlin.Boolean?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean? & kotlin.Boolean?")!>x<!><!UNSAFE_CALL!>.<!>not()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean?")!>x<!><!UNSAFE_CALL!>.<!>not()
}
}
@@ -35,8 +35,8 @@ fun case_4() {
var x: Boolean? = true
if (<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean?")!>x<!> != null) {
false || when { else -> {x = null; true} }
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean? & kotlin.Boolean?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean? & kotlin.Boolean?")!>x<!><!UNSAFE_CALL!>.<!>not()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean?")!>x<!><!UNSAFE_CALL!>.<!>not()
}
}
@@ -57,8 +57,8 @@ fun case_6() {
var x: Boolean? = true
x as Boolean
if (if (true) { x = null; true } else { false }) {
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean? & kotlin.Boolean?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean? & kotlin.Boolean?")!>x<!><!UNSAFE_CALL!>.<!>not()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean?")!>x<!><!UNSAFE_CALL!>.<!>not()
}
}
@@ -68,6 +68,6 @@ fun case_7() {
x!!
if (if (true) { x = null; true } else { false }) {}
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean? & kotlin.Boolean?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean? & kotlin.Boolean?")!>x<!><!UNSAFE_CALL!>.<!>not()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean?")!>x<!><!UNSAFE_CALL!>.<!>not()
}
@@ -6,7 +6,7 @@
fun case_1() {
var x: Int? = 11
x!!
try {x = null;} finally { <!UNRESOLVED_REFERENCE!><!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int? & kotlin.Int?")!>x<!> += 10<!>; }
try {x = null;} finally { <!UNRESOLVED_REFERENCE!><!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int?")!>x<!> += 10<!>; }
}
// TESTCASE NUMBER: 2
@@ -18,7 +18,7 @@ fun case_2() {
} catch (e: Exception) {
x = null
}
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean? & kotlin.Boolean?")!>x<!><!UNSAFE_CALL!>.<!>not()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean?")!>x<!><!UNSAFE_CALL!>.<!>not()
}
}
@@ -31,7 +31,7 @@ fun case_3() {
} catch (e: Exception) {
x = null
}
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean? & kotlin.Boolean?")!>x<!><!UNSAFE_CALL!>.<!>not()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean?")!>x<!><!UNSAFE_CALL!>.<!>not()
}
}
@@ -42,5 +42,5 @@ fun case_4() {
try {
x = null
} finally { }
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean? & kotlin.Boolean?")!>x<!><!UNSAFE_CALL!>.<!>not()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean?")!>x<!><!UNSAFE_CALL!>.<!>not()
}
@@ -14,16 +14,16 @@ fun case_1(x: Class?) {
fun case_2() {
var x: Class? = 10
x!!
<!NONE_APPLICABLE!>x<!>(if (true) {x=null;0} else 0, <!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class?")!>x<!>)
<!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class?")!>x<!><!UNSAFE_CALL!>.<!>fun_1()
<!NONE_APPLICABLE!>x<!>(if (true) {x=null;0} else 0, <!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>)
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!><!UNSAFE_CALL!>.<!>fun_1()
}
// TESTCASE NUMBER: 3
fun case_3() {
var x: Class? = Class()
x!!
val y = <!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class")!>x<!>[if (true) {x=null;0} else 0, <!INAPPLICABLE_CANDIDATE!><!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class?")!>x<!>[0]<!>]
<!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class?")!>x<!><!UNSAFE_CALL!>.<!>fun_1()
val y = <!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class")!>x<!>[if (true) {x=null;0} else 0, <!INAPPLICABLE_CANDIDATE!><!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>[0]<!>]
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!><!UNSAFE_CALL!>.<!>fun_1()
}
@@ -37,8 +37,8 @@ fun case_3() {
var x: Boolean? = true
if (x != null) {
false || when { else -> { x = null; true} }
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean? & kotlin.Boolean?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean? & kotlin.Boolean?")!>x<!><!UNSAFE_CALL!>.<!>not()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean?")!>x<!><!UNSAFE_CALL!>.<!>not()
}
}
@@ -64,7 +64,7 @@ fun case_4() {
fun case_5() {
var x: Boolean? = true
if (x != null) {
when { else -> { x = null; false} } || <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean? & kotlin.Boolean?")!>x<!><!UNSAFE_CALL!>.<!>not()
when { else -> { x = null; false} } || <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean?")!>x<!><!UNSAFE_CALL!>.<!>not()
}
}
@@ -88,7 +88,7 @@ fun case_6() {
fun case_7() {
var x: Boolean? = true
if (x != null) {
(if (true) {x = null; null} else true) ?: <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean? & kotlin.Boolean?")!>x<!><!UNSAFE_CALL!>.<!>not()
(if (true) {x = null; null} else true) ?: <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean?")!>x<!><!UNSAFE_CALL!>.<!>not()
}
}
@@ -96,7 +96,7 @@ fun case_7() {
fun case_8(y: MutableList<Boolean>) {
var x: Boolean? = true
if (x != null) {
<!INAPPLICABLE_CANDIDATE!>y[if (true) {x = null;0} else 0] = <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean? & kotlin.Boolean?")!>x<!><!>
<!INAPPLICABLE_CANDIDATE!>y[if (true) {x = null;0} else 0] = <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean?")!>x<!><!>
}
}
@@ -109,8 +109,8 @@ fun case_9() {
var x: Boolean? = true
if (x is Boolean) {
funWithAnyArg(try { x = null; true } catch (e: Exception) { false })
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean? & kotlin.Boolean?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean? & kotlin.Boolean?")!>x<!><!UNSAFE_CALL!>.<!>not()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean?")!>x<!><!UNSAFE_CALL!>.<!>not()
}
}
@@ -122,7 +122,7 @@ fun case_9() {
fun case_10() {
var x: Boolean? = true
if (x is Boolean) {
select(if (true) {x = null;Class()} else Class()).prop_9 = <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean? & kotlin.Boolean?")!>x<!><!UNSAFE_CALL!>.<!>not()
select(if (true) {x = null;Class()} else Class()).prop_9 = <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean?")!>x<!><!UNSAFE_CALL!>.<!>not()
}
}
@@ -50,7 +50,7 @@ fun case_4(x: Interface1?) {
y as Interface2
y = null
fun foo() {
<!DEBUG_INFO_EXPRESSION_TYPE("Interface1? & Interface1?")!>y<!>.<!UNRESOLVED_REFERENCE!>itest2<!>()
<!DEBUG_INFO_EXPRESSION_TYPE("Interface1?")!>y<!>.<!UNRESOLVED_REFERENCE!>itest2<!>()
}
y = x
foo()
@@ -62,7 +62,7 @@ fun case_5(x: Interface1?) {
y as Interface2
y = null
fun foo() {
<!DEBUG_INFO_EXPRESSION_TYPE("Interface1? & Interface1?")!>y<!>.<!UNRESOLVED_REFERENCE!>itest2<!>()
<!DEBUG_INFO_EXPRESSION_TYPE("Interface1?")!>y<!>.<!UNRESOLVED_REFERENCE!>itest2<!>()
}
y = x
foo()
@@ -13,7 +13,7 @@ class Case1 {
val y = this
if (y.x != null) {
x = null
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int? & kotlin.Int?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int?")!>x<!>
this.x
y.x
y.x<!UNSAFE_CALL!>.<!>inv()
@@ -34,7 +34,7 @@ class Case2 {
val y = this
if (y.x == null) {
x = 11
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int & kotlin.Int")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>x<!>
this.x
y.x
y.x.inv()
@@ -61,8 +61,8 @@ inline fun <reified T, reified K> case_6() {
var x: T? = 10 as T
if (x is K) {
x = null
<!DEBUG_INFO_EXPRESSION_TYPE("T? & T?")!>x<!><!UNSAFE_CALL!>.<!>equals(10)
<!DEBUG_INFO_EXPRESSION_TYPE("T? & T?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("T?")!>x<!><!UNSAFE_CALL!>.<!>equals(10)
<!DEBUG_INFO_EXPRESSION_TYPE("T?")!>x<!>
println(1)
}
}
@@ -15,8 +15,8 @@ fun case_1() {
} catch (e: Exception) {
x = null
}
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean? & kotlin.Boolean?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean? & kotlin.Boolean?")!>x<!><!UNSAFE_CALL!>.<!>not()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean?")!>x<!><!UNSAFE_CALL!>.<!>not()
}
}
@@ -31,8 +31,8 @@ fun case_2() {
try {
x = null
} finally { }
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean? & kotlin.Boolean?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean? & kotlin.Boolean?")!>x<!><!UNSAFE_CALL!>.<!>not()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean?")!>x<!><!UNSAFE_CALL!>.<!>not()
}
}
@@ -10,18 +10,18 @@
fun case_1() {
var x: MutableList<Int>? = mutableListOf(1)
x!!
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<kotlin.Int>? & kotlin.collections.MutableList<kotlin.Int>")!>x<!>[if (true) {x=null;0} else 0] += <!UNSAFE_CALL!><!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<kotlin.Int>? & kotlin.collections.MutableList<kotlin.Int>?")!>x<!>[0]<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<kotlin.Int>? & kotlin.collections.MutableList<kotlin.Int>?")!>x<!>
<!UNSAFE_CALL!><!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<kotlin.Int>? & kotlin.collections.MutableList<kotlin.Int>?")!>x<!>[0]<!>.inv()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<kotlin.Int>? & kotlin.collections.MutableList<kotlin.Int>")!>x<!>[if (true) {x=null;0} else 0] += <!UNSAFE_CALL!><!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<kotlin.Int>?")!>x<!>[0]<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<kotlin.Int>?")!>x<!>
<!UNSAFE_CALL!><!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<kotlin.Int>?")!>x<!>[0]<!>.inv()
}
// TESTCASE NUMBER: 2
fun case_2() {
var x: MutableList<Int>? = mutableListOf(1)
x!!
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<kotlin.Int>? & kotlin.collections.MutableList<kotlin.Int>")!>x<!>[if (true) {x=null;0} else 0] = <!UNSAFE_CALL!><!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<kotlin.Int>? & kotlin.collections.MutableList<kotlin.Int>?")!>x<!>[0]<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<kotlin.Int>? & kotlin.collections.MutableList<kotlin.Int>?")!>x<!>
<!UNSAFE_CALL!><!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<kotlin.Int>? & kotlin.collections.MutableList<kotlin.Int>?")!>x<!>[0]<!>.inv()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<kotlin.Int>? & kotlin.collections.MutableList<kotlin.Int>")!>x<!>[if (true) {x=null;0} else 0] = <!UNSAFE_CALL!><!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<kotlin.Int>?")!>x<!>[0]<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<kotlin.Int>?")!>x<!>
<!UNSAFE_CALL!><!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<kotlin.Int>?")!>x<!>[0]<!>.inv()
}
// TESTCASE NUMBER: 3
@@ -29,8 +29,8 @@ fun case_3() {
var x: MutableList<Int>? = mutableListOf(1)
x!!
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<kotlin.Int>? & kotlin.collections.MutableList<kotlin.Int>")!>x<!>[0] = if (true) {x=null;0} else 0
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<kotlin.Int>? & kotlin.collections.MutableList<kotlin.Int>?")!>x<!>
<!UNSAFE_CALL!><!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<kotlin.Int>? & kotlin.collections.MutableList<kotlin.Int>?")!>x<!>[0]<!>.inv()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<kotlin.Int>?")!>x<!>
<!UNSAFE_CALL!><!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<kotlin.Int>?")!>x<!>[0]<!>.inv()
}
/*
@@ -41,9 +41,9 @@ fun case_3() {
fun case_4() {
var x: Class? = Class()
x!!
val y = <!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class")!>x<!>[if (true) {x=null;0} else 0, <!INAPPLICABLE_CANDIDATE!><!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class?")!>x<!>[0]<!>]
<!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class?")!>x<!>
<!INAPPLICABLE_CANDIDATE!><!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class?")!>x<!>[0]<!>.inv()
val y = <!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class")!>x<!>[if (true) {x=null;0} else 0, <!INAPPLICABLE_CANDIDATE!><!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>[0]<!>]
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>
<!INAPPLICABLE_CANDIDATE!><!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>[0]<!>.inv()
}
/*
@@ -54,17 +54,17 @@ fun case_4() {
fun case_5() {
var x: Class? = Class()
x!!
<!NONE_APPLICABLE!>x<!>(if (true) {x=null;0} else 0, <!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class?")!>x<!>)
<!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class?")!>x<!><!UNSAFE_CALL!>.<!>fun_1()
<!NONE_APPLICABLE!>x<!>(if (true) {x=null;0} else 0, <!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>)
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!><!UNSAFE_CALL!>.<!>fun_1()
}
// TESTCASE NUMBER: 6
fun case_6() {
var x: MutableList<MutableList<Int>>? = mutableListOf(mutableListOf(1))
x!!
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<kotlin.collections.MutableList<kotlin.Int>>? & kotlin.collections.MutableList<kotlin.collections.MutableList<kotlin.Int>>")!>x<!>[if (true) {x=null;0} else 0][<!UNSAFE_CALL!><!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<kotlin.collections.MutableList<kotlin.Int>>? & kotlin.collections.MutableList<kotlin.collections.MutableList<kotlin.Int>>?")!>x<!>[0]<!>[0]] += 10
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<kotlin.collections.MutableList<kotlin.Int>>? & kotlin.collections.MutableList<kotlin.collections.MutableList<kotlin.Int>>?")!>x<!>
<!UNSAFE_CALL!><!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<kotlin.collections.MutableList<kotlin.Int>>? & kotlin.collections.MutableList<kotlin.collections.MutableList<kotlin.Int>>?")!>x<!>[0]<!>[0].inv()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<kotlin.collections.MutableList<kotlin.Int>>? & kotlin.collections.MutableList<kotlin.collections.MutableList<kotlin.Int>>")!>x<!>[if (true) {x=null;0} else 0][<!UNSAFE_CALL!><!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<kotlin.collections.MutableList<kotlin.Int>>?")!>x<!>[0]<!>[0]] += 10
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<kotlin.collections.MutableList<kotlin.Int>>?")!>x<!>
<!UNSAFE_CALL!><!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<kotlin.collections.MutableList<kotlin.Int>>?")!>x<!>[0]<!>[0].inv()
}
/*
@@ -75,22 +75,22 @@ fun case_6() {
fun case_7() {
var x: Class? = Class()
x!!
<!NONE_APPLICABLE!>x<!>(if (true) {x=null;0} else 0)(<!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class?")!>x<!>)
<!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class?")!>x<!><!UNSAFE_CALL!>.<!>fun_1()
<!NONE_APPLICABLE!>x<!>(if (true) {x=null;0} else 0)(<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>)
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!><!UNSAFE_CALL!>.<!>fun_1()
}
// TESTCASE NUMBER: 8
fun case_8() {
var x: MutableList<MutableList<Int>>? = mutableListOf(mutableListOf(1))
x!!
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<kotlin.collections.MutableList<kotlin.Int>>? & kotlin.collections.MutableList<kotlin.collections.MutableList<kotlin.Int>>")!>x<!>[if (true) {x=null;0} else 0].addAll(1, <!UNSAFE_CALL!><!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<kotlin.collections.MutableList<kotlin.Int>>? & kotlin.collections.MutableList<kotlin.collections.MutableList<kotlin.Int>>?")!>x<!>[0]<!>)
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<kotlin.collections.MutableList<kotlin.Int>>? & kotlin.collections.MutableList<kotlin.collections.MutableList<kotlin.Int>>")!>x<!>[if (true) {x=null;0} else 0].addAll(1, <!UNSAFE_CALL!><!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<kotlin.collections.MutableList<kotlin.Int>>?")!>x<!>[0]<!>)
}
// TESTCASE NUMBER: 9
fun case_9() {
var x: MutableList<MutableList<Int>>? = mutableListOf(mutableListOf(1))
x!!
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<kotlin.collections.MutableList<kotlin.Int>>? & kotlin.collections.MutableList<kotlin.collections.MutableList<kotlin.Int>>")!>x<!>[if (true) {x=null;0} else 0].subList(0, 2)[<!UNSAFE_CALL!><!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<kotlin.collections.MutableList<kotlin.Int>>? & kotlin.collections.MutableList<kotlin.collections.MutableList<kotlin.Int>>?")!>x<!>[0]<!>[0]]
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<kotlin.collections.MutableList<kotlin.Int>>? & kotlin.collections.MutableList<kotlin.collections.MutableList<kotlin.Int>>")!>x<!>[if (true) {x=null;0} else 0].subList(0, 2)[<!UNSAFE_CALL!><!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<kotlin.collections.MutableList<kotlin.Int>>?")!>x<!>[0]<!>[0]]
}
/*
@@ -101,7 +101,7 @@ fun case_9() {
fun case_10() {
var x: MutableList<MutableList<Int>>? = mutableListOf(mutableListOf(1))
x!!
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<kotlin.collections.MutableList<kotlin.Int>>? & kotlin.collections.MutableList<kotlin.collections.MutableList<kotlin.Int>>")!>x<!>.subList(if (true) {x=null;0} else 0, 2)[<!UNSAFE_CALL!><!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<kotlin.collections.MutableList<kotlin.Int>>? & kotlin.collections.MutableList<kotlin.collections.MutableList<kotlin.Int>>?")!>x<!>[0]<!>[0]]
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<kotlin.collections.MutableList<kotlin.Int>>? & kotlin.collections.MutableList<kotlin.collections.MutableList<kotlin.Int>>")!>x<!>.subList(if (true) {x=null;0} else 0, 2)[<!UNSAFE_CALL!><!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<kotlin.collections.MutableList<kotlin.Int>>?")!>x<!>[0]<!>[0]]
}
/*
@@ -112,5 +112,5 @@ fun case_10() {
fun case_11() {
var x: MutableList<MutableList<Int>>? = mutableListOf(mutableListOf(1))
x!!
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<kotlin.collections.MutableList<kotlin.Int>>? & kotlin.collections.MutableList<kotlin.collections.MutableList<kotlin.Int>>")!>x<!>[if (true) {x=null;0} else 0].subList(<!UNSAFE_CALL!><!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<kotlin.collections.MutableList<kotlin.Int>>? & kotlin.collections.MutableList<kotlin.collections.MutableList<kotlin.Int>>?")!>x<!>[0]<!>[0], 2)
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<kotlin.collections.MutableList<kotlin.Int>>? & kotlin.collections.MutableList<kotlin.collections.MutableList<kotlin.Int>>")!>x<!>[if (true) {x=null;0} else 0].subList(<!UNSAFE_CALL!><!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<kotlin.collections.MutableList<kotlin.Int>>?")!>x<!>[0]<!>[0], 2)
}
@@ -13,8 +13,8 @@ fun case_1(x: Nothing?) {
// TESTCASE NUMBER: 2
fun case_2(x: Nothing) {
if (x is Unit) {
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Nothing & kotlin.Nothing")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Nothing & kotlin.Nothing")!>x<!>.inv()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Nothing")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Nothing")!>x<!>.inv()
}
}
@@ -29,16 +29,16 @@ fun case_3(x: Nothing?) {
// TESTCASE NUMBER: 4
fun case_4(x: Nothing) {
if (x !is EnumClass) else {
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Nothing & kotlin.Nothing")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Nothing & kotlin.Nothing")!>x<!>.<!UNRESOLVED_REFERENCE!>fun_1<!>()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Nothing")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Nothing")!>x<!>.<!UNRESOLVED_REFERENCE!>fun_1<!>()
}
}
// TESTCASE NUMBER: 5
fun case_5(x: Nothing?) {
if (!(x !is Class.NestedClass?)) {
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Nothing? & kotlin.Nothing?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Nothing? & kotlin.Nothing?")!>x<!>?.<!UNRESOLVED_REFERENCE!>prop_4<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Nothing?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Nothing?")!>x<!>?.<!UNRESOLVED_REFERENCE!>prop_4<!>
}
}
@@ -53,24 +53,24 @@ fun case_6(x: Nothing?) {
// TESTCASE NUMBER: 7
fun case_7(x: Nothing) {
if (!(x is DeepObject.A.B.C.D.E.F.G.J)) else {
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Nothing & kotlin.Nothing")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Nothing & kotlin.Nothing")!>x<!>.<!UNRESOLVED_REFERENCE!>prop_1<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Nothing")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Nothing")!>x<!>.<!UNRESOLVED_REFERENCE!>prop_1<!>
}
}
// TESTCASE NUMBER: 8
fun case_8(x: Nothing?) {
if (!(x is Int?)) else {
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Nothing? & kotlin.Nothing?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Nothing? & kotlin.Nothing?")!>x<!>?.inv()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Nothing?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Nothing?")!>x<!>?.inv()
}
}
// TESTCASE NUMBER: 9
fun case_9(x: Nothing?) {
if (!!(x !is TypealiasNullableStringIndirect?)) else {
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Nothing? & kotlin.Nothing?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Nothing? & kotlin.Nothing?")!>x<!>?.<!UNRESOLVED_REFERENCE!>length<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Nothing?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Nothing?")!>x<!>?.<!UNRESOLVED_REFERENCE!>length<!>
}
}
@@ -86,8 +86,8 @@ fun case_10(x: Nothing?) {
// TESTCASE NUMBER: 11
fun case_11(x: Nothing?) {
if (x is SealedMixedChildObject1?) {
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Nothing? & kotlin.Nothing?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Nothing? & kotlin.Nothing?")!>x<!>?.<!UNRESOLVED_REFERENCE!>prop_1<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Nothing? & kotlin.Nothing?")!>x<!>?.<!UNRESOLVED_REFERENCE!>prop_2<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Nothing?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Nothing?")!>x<!>?.<!UNRESOLVED_REFERENCE!>prop_1<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Nothing?")!>x<!>?.<!UNRESOLVED_REFERENCE!>prop_2<!>
}
}
@@ -57,6 +57,6 @@ fun case_4(x: Int?) {
fun case_5(x: Int?) {
if (x == null) {
var y = x
<!INAPPLICABLE_CANDIDATE!>nullableStringArg<!>(<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int? & kotlin.Int?")!>y<!>)
<!INAPPLICABLE_CANDIDATE!>nullableStringArg<!>(<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int?")!>y<!>)
}
}
@@ -13,8 +13,8 @@ fun case_1() {
x = null
break
}
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String? & kotlin.String?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String? & kotlin.String?")!>x<!><!UNSAFE_CALL!>.<!>length
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>x<!><!UNSAFE_CALL!>.<!>length
}
/*
@@ -28,8 +28,8 @@ fun case_3() {
x = null
break
}
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String? & kotlin.String?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String? & kotlin.String?")!>x<!><!UNSAFE_CALL!>.<!>length
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>x<!><!UNSAFE_CALL!>.<!>length
}
/*
@@ -43,8 +43,8 @@ fun case_4() {
x = null
break
}
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean? & kotlin.Boolean?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean? & kotlin.Boolean?")!>x<!><!UNSAFE_CALL!>.<!>not()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean?")!>x<!><!UNSAFE_CALL!>.<!>not()
}
// TESTCASE NUMBER: 5
@@ -56,8 +56,8 @@ fun case_5() {
x = null
break
}
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean? & kotlin.Boolean?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean? & kotlin.Boolean?")!>x<!><!UNSAFE_CALL!>.<!>not()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean?")!>x<!><!UNSAFE_CALL!>.<!>not()
}
// TESTCASE NUMBER: 6
@@ -141,8 +141,8 @@ fun case_12() {
x = null
break
} while (true && x!!)
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean? & kotlin.Boolean?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean? & kotlin.Boolean?")!>x<!><!UNSAFE_CALL!>.<!>not()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean?")!>x<!><!UNSAFE_CALL!>.<!>not()
}
// TESTCASE NUMBER: 13
@@ -154,8 +154,8 @@ fun case_13() {
x = null
break
} while (false && x!!)
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean? & kotlin.Boolean?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean? & kotlin.Boolean?")!>x<!><!UNSAFE_CALL!>.<!>not()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean?")!>x<!><!UNSAFE_CALL!>.<!>not()
}
// TESTCASE NUMBER: 14
@@ -167,8 +167,8 @@ fun case_14() {
x = null
break
} while (true || x!!)
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean? & kotlin.Boolean?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean? & kotlin.Boolean?")!>x<!><!UNSAFE_CALL!>.<!>not()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean?")!>x<!><!UNSAFE_CALL!>.<!>not()
}
// TESTCASE NUMBER: 15
@@ -180,8 +180,8 @@ fun case_15() {
x = null
break
} while (!(false && x!!))
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean? & kotlin.Boolean?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean? & kotlin.Boolean?")!>x<!><!UNSAFE_CALL!>.<!>not()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean?")!>x<!><!UNSAFE_CALL!>.<!>not()
}
/*
@@ -194,8 +194,8 @@ fun case_16() {
while (x!! && if (true) {x = null; true} else true) {
break
}
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean? & kotlin.Boolean?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean? & kotlin.Boolean?")!>x<!><!UNSAFE_CALL!>.<!>not()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean?")!>x<!><!UNSAFE_CALL!>.<!>not()
}
/*
@@ -208,6 +208,6 @@ fun case_17() {
while (x!! && if (true) {x = null; true} else true) {
break
}
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean? & kotlin.Boolean?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean? & kotlin.Boolean?")!>x<!><!UNSAFE_CALL!>.<!>not()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean?")!>x<!><!UNSAFE_CALL!>.<!>not()
}
@@ -11,8 +11,8 @@ fun case_1() {
var x: String?
x = "Test"
println("${if (true) x = null else 1}")
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String? & kotlin.String?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String? & kotlin.String?")!>x<!><!UNSAFE_CALL!>.<!>length
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>x<!><!UNSAFE_CALL!>.<!>length
}
/*
@@ -24,8 +24,8 @@ fun case_2() {
var x: String?
x = "Test"
println("${try { x = null } finally { }}")
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String? & kotlin.String?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String? & kotlin.String?")!>x<!><!UNSAFE_CALL!>.<!>length
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>x<!><!UNSAFE_CALL!>.<!>length
}
/*
@@ -37,8 +37,8 @@ fun case_3() {
var x: String?
x = "Test"
println("${try { } finally { x = null }}")
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String? & kotlin.String?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String? & kotlin.String?")!>x<!><!UNSAFE_CALL!>.<!>length
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>x<!><!UNSAFE_CALL!>.<!>length
}
/*
@@ -50,8 +50,8 @@ fun case_4() {
var x: String?
x = "Test"
println("${try { x = null } catch (e: Exception) { } finally { }}")
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String? & kotlin.String?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String? & kotlin.String?")!>x<!><!UNSAFE_CALL!>.<!>length
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>x<!><!UNSAFE_CALL!>.<!>length
}
/*
@@ -63,8 +63,8 @@ fun case_5() {
var x: String?
x = "Test"
println("${try { } catch (e: Exception) { x = null } finally { }}")
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String? & kotlin.String?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String? & kotlin.String?")!>x<!><!UNSAFE_CALL!>.<!>length
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>x<!><!UNSAFE_CALL!>.<!>length
}
/*
@@ -76,8 +76,8 @@ fun case_6() {
var x: String?
x = "Test"
println("${try { } catch (e: Exception) { } finally { x = null }}")
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String? & kotlin.String?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String? & kotlin.String?")!>x<!><!UNSAFE_CALL!>.<!>length
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>x<!><!UNSAFE_CALL!>.<!>length
}
/*
@@ -89,8 +89,8 @@ fun case_7() {
var x: String?
x = "Test"
println("${try { x = null } catch (e: Exception) { }}")
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String? & kotlin.String?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String? & kotlin.String?")!>x<!><!UNSAFE_CALL!>.<!>length
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>x<!><!UNSAFE_CALL!>.<!>length
}
/*
@@ -102,8 +102,8 @@ fun case_8() {
var x: String?
x = "Test"
println("${try { } catch (e: Exception) { x = null }}")
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String? & kotlin.String?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String? & kotlin.String?")!>x<!><!UNSAFE_CALL!>.<!>length
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>x<!><!UNSAFE_CALL!>.<!>length
}
/*
@@ -115,6 +115,6 @@ fun case_9() {
var x: String?
x = "Test"
println("${when (null) { else -> x = null } }")
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String? & kotlin.String?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String? & kotlin.String?")!>x<!><!UNSAFE_CALL!>.<!>length
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>x<!><!UNSAFE_CALL!>.<!>length
}
@@ -12,8 +12,8 @@ fun case_1() {
if (x != null) {
<!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class")!>x<!>
x++
<!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class?")!>x<!><!UNSAFE_CALL!>.<!>equals(10)
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!><!UNSAFE_CALL!>.<!>equals(10)
}
}
@@ -27,8 +27,8 @@ fun case_2() {
x = Class()
<!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class")!>x<!>
x--
<!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class?")!>x<!><!UNSAFE_CALL!>.<!>equals(10)
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!><!UNSAFE_CALL!>.<!>equals(10)
}
/*
@@ -41,8 +41,8 @@ fun case_3() {
x!!
<!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class")!>x<!>
--x
<!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class?")!>x<!><!UNSAFE_CALL!>.<!>equals(10)
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!><!UNSAFE_CALL!>.<!>equals(10)
}
/*
@@ -55,8 +55,8 @@ fun case_4() {
x as Class
<!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class")!>x<!>
++x
<!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class?")!>x<!><!UNSAFE_CALL!>.<!>equals(10)
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!><!UNSAFE_CALL!>.<!>equals(10)
}
// TESTCASE NUMBER: 5
@@ -65,8 +65,8 @@ fun case_5() {
x as Class
<!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class")!>x<!>
x = x + x
<!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class?")!>x<!><!UNSAFE_CALL!>.<!>equals(10)
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!><!UNSAFE_CALL!>.<!>equals(10)
}
// TESTCASE NUMBER: 6
@@ -75,8 +75,8 @@ fun case_6() {
if (x is Class) {
<!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class")!>x<!>
x = x - x
<!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class?")!>x<!><!UNSAFE_CALL!>.<!>equals(10)
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!><!UNSAFE_CALL!>.<!>equals(10)
}
}
@@ -90,8 +90,8 @@ fun case_7() {
x = Class()
<!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class")!>x<!>
x += x
<!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class?")!>x<!><!UNSAFE_CALL!>.<!>equals(10)
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!><!UNSAFE_CALL!>.<!>equals(10)
}
/*
@@ -104,6 +104,6 @@ fun case_8() {
x!!
<!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class")!>x<!>
x -= x
<!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class?")!>x<!><!UNSAFE_CALL!>.<!>equals(10)
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!><!UNSAFE_CALL!>.<!>equals(10)
}
@@ -145,8 +145,8 @@ fun case_9() {
inner@ do {
x = null
} while (x != null)
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String? & kotlin.String?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String? & kotlin.String?")!>x<!><!UNSAFE_CALL!>.<!>length
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>x<!><!UNSAFE_CALL!>.<!>length
}
}
@@ -158,8 +158,8 @@ fun case_10() {
inner@ do {
x = null
} while (true)
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String? & kotlin.String?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String? & kotlin.String?")!>x<!><!UNSAFE_CALL!>.<!>length
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>x<!><!UNSAFE_CALL!>.<!>length
}
}
@@ -172,7 +172,7 @@ fun case_11() {
x = null
break
} while (x == null)
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String? & kotlin.String?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String? & kotlin.String?")!>x<!><!UNSAFE_CALL!>.<!>length
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>x<!><!UNSAFE_CALL!>.<!>length
}
}
@@ -304,16 +304,16 @@ fun case_14() {
// TESTCASE NUMBER: 15
fun case_15(x: EmptyObject) {
val t = if (x === null) "" else {
<!DEBUG_INFO_EXPRESSION_TYPE("EmptyObject & EmptyObject")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("EmptyObject & EmptyObject")!>x<!>.equals(null)
<!DEBUG_INFO_EXPRESSION_TYPE("EmptyObject & EmptyObject")!>x<!>.propT
<!DEBUG_INFO_EXPRESSION_TYPE("EmptyObject & EmptyObject")!>x<!>.propAny
<!DEBUG_INFO_EXPRESSION_TYPE("EmptyObject & EmptyObject")!>x<!>.propNullableT
<!DEBUG_INFO_EXPRESSION_TYPE("EmptyObject & EmptyObject")!>x<!>.propNullableAny
<!DEBUG_INFO_EXPRESSION_TYPE("EmptyObject & EmptyObject")!>x<!>.funT()
<!DEBUG_INFO_EXPRESSION_TYPE("EmptyObject & EmptyObject")!>x<!>.funAny()
<!DEBUG_INFO_EXPRESSION_TYPE("EmptyObject & EmptyObject")!>x<!>.funNullableT()
<!DEBUG_INFO_EXPRESSION_TYPE("EmptyObject & EmptyObject")!>x<!>.funNullableAny()
<!DEBUG_INFO_EXPRESSION_TYPE("EmptyObject")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("EmptyObject")!>x<!>.equals(null)
<!DEBUG_INFO_EXPRESSION_TYPE("EmptyObject")!>x<!>.propT
<!DEBUG_INFO_EXPRESSION_TYPE("EmptyObject")!>x<!>.propAny
<!DEBUG_INFO_EXPRESSION_TYPE("EmptyObject")!>x<!>.propNullableT
<!DEBUG_INFO_EXPRESSION_TYPE("EmptyObject")!>x<!>.propNullableAny
<!DEBUG_INFO_EXPRESSION_TYPE("EmptyObject")!>x<!>.funT()
<!DEBUG_INFO_EXPRESSION_TYPE("EmptyObject")!>x<!>.funAny()
<!DEBUG_INFO_EXPRESSION_TYPE("EmptyObject")!>x<!>.funNullableT()
<!DEBUG_INFO_EXPRESSION_TYPE("EmptyObject")!>x<!>.funNullableAny()
}
}
@@ -1302,8 +1302,8 @@ open class Case29(a: Int?, val b: Float?, private val c: Unit?, protected val d:
if (w != null || this.w != null) this.w
s = null
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & kotlin.Any?")!>s<!>.hashCode()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & kotlin.Any?")!>s<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any?")!>s<!>.hashCode()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any?")!>s<!>
if (s != null) <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & kotlin.Any")!>s<!>
if (this.s != null) <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & kotlin.Any")!>s<!>
if (s != null || this.s != null) <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & kotlin.Any")!>s<!>
@@ -2346,8 +2346,8 @@ sealed class Case30(a: Int?, val b: Float?, private val c: Unit?, protected val
if (w != null || this.w != null) this.w
s = null
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & kotlin.Any?")!>s<!>.hashCode()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & kotlin.Any?")!>s<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any?")!>s<!>.hashCode()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any?")!>s<!>
if (s != null) <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & kotlin.Any")!>s<!>
if (this.s != null) <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & kotlin.Any")!>s<!>
if (s != null || this.s != null) <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & kotlin.Any")!>s<!>
@@ -3391,8 +3391,8 @@ enum class Case31(a: Int?, val b: Float?, private val c: Unit?, protected val d:
if (w != null || this.w != null) this.w
s = null
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & kotlin.Any?")!>s<!>.hashCode()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & kotlin.Any?")!>s<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any?")!>s<!>.hashCode()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any?")!>s<!>
if (s != null) <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & kotlin.Any")!>s<!>
if (this.s != null) <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & kotlin.Any")!>s<!>
if (s != null || this.s != null) <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & kotlin.Any")!>s<!>
@@ -4039,8 +4039,8 @@ object Case32 {
if (w != null || this.w != null) this.w
s = null
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & kotlin.Any?")!>s<!>.hashCode()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & kotlin.Any?")!>s<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any?")!>s<!>.hashCode()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any?")!>s<!>
if (s != null) <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & kotlin.Any")!>s<!>
if (this.s != null) <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & kotlin.Any")!>s<!>
if (s != null || this.s != null) <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & kotlin.Any")!>s<!>
@@ -320,17 +320,17 @@ fun <T> T.case_8() {
// TESTCASE NUMBER: 9
fun <T : Number> T.case_9() {
if (this != null) {
<!DEBUG_INFO_EXPRESSION_TYPE("T & T")!>this<!>
<!DEBUG_INFO_EXPRESSION_TYPE("T & T")!>this<!>.equals(null)
<!DEBUG_INFO_EXPRESSION_TYPE("T & T")!>this<!>.propT
<!DEBUG_INFO_EXPRESSION_TYPE("T & T")!>this<!>.propAny
<!DEBUG_INFO_EXPRESSION_TYPE("T & T")!>this<!>.propNullableT
<!DEBUG_INFO_EXPRESSION_TYPE("T & T")!>this<!>.propNullableAny
<!DEBUG_INFO_EXPRESSION_TYPE("T & T")!>this<!>.funT()
<!DEBUG_INFO_EXPRESSION_TYPE("T & T")!>this<!>.funAny()
<!DEBUG_INFO_EXPRESSION_TYPE("T & T")!>this<!>.funNullableT()
<!DEBUG_INFO_EXPRESSION_TYPE("T & T")!>this<!>.funNullableAny()
<!DEBUG_INFO_EXPRESSION_TYPE("T & T")!>this<!>.toByte()
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>this<!>
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>this<!>.equals(null)
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>this<!>.propT
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>this<!>.propAny
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>this<!>.propNullableT
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>this<!>.propNullableAny
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>this<!>.funT()
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>this<!>.funAny()
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>this<!>.funNullableT()
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>this<!>.funNullableAny()
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>this<!>.toByte()
equals(null)
@@ -567,18 +567,18 @@ fun <T> T.case_12() where T : Number?, T: Interface1? {
*/
fun <T> T.case_13() where T : Out<*>?, T: Comparable<T?> {
if (this != null) {
<!DEBUG_INFO_EXPRESSION_TYPE("T & T")!>this<!>
<!DEBUG_INFO_EXPRESSION_TYPE("T & T")!>this<!>.equals(null)
<!DEBUG_INFO_EXPRESSION_TYPE("T & T")!>this<!>.propT
<!DEBUG_INFO_EXPRESSION_TYPE("T & T")!>this<!>.propAny
<!DEBUG_INFO_EXPRESSION_TYPE("T & T")!>this<!>.propNullableT
<!DEBUG_INFO_EXPRESSION_TYPE("T & T")!>this<!>.propNullableAny
<!DEBUG_INFO_EXPRESSION_TYPE("T & T")!>this<!>.funT()
<!DEBUG_INFO_EXPRESSION_TYPE("T & T")!>this<!>.funAny()
<!DEBUG_INFO_EXPRESSION_TYPE("T & T")!>this<!>.funNullableT()
<!DEBUG_INFO_EXPRESSION_TYPE("T & T")!>this<!>.funNullableAny()
<!DEBUG_INFO_EXPRESSION_TYPE("T & T")!>this<!>.get()
<!DEBUG_INFO_EXPRESSION_TYPE("T & T")!>this<!>.compareTo(null)
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>this<!>
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>this<!>.equals(null)
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>this<!>.propT
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>this<!>.propAny
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>this<!>.propNullableT
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>this<!>.propNullableAny
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>this<!>.funT()
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>this<!>.funAny()
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>this<!>.funNullableT()
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>this<!>.funNullableAny()
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>this<!>.get()
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>this<!>.compareTo(null)
equals(null)
@@ -3494,18 +3494,18 @@ fun <T> T.case_56() where T : Number?, T: Interface1? {
*/
fun <T> T.case_57() where T : Out<*>?, T: Comparable<T?> {
if (this != null) {
<!DEBUG_INFO_EXPRESSION_TYPE("T & T")!>this<!>
<!DEBUG_INFO_EXPRESSION_TYPE("T & T")!>this<!>.equals(null)
<!DEBUG_INFO_EXPRESSION_TYPE("T & T")!>this<!>.propT
<!DEBUG_INFO_EXPRESSION_TYPE("T & T")!>this<!>.propAny
<!DEBUG_INFO_EXPRESSION_TYPE("T & T")!>this<!>.propNullableT
<!DEBUG_INFO_EXPRESSION_TYPE("T & T")!>this<!>.propNullableAny
<!DEBUG_INFO_EXPRESSION_TYPE("T & T")!>this<!>.funT()
<!DEBUG_INFO_EXPRESSION_TYPE("T & T")!>this<!>.funAny()
<!DEBUG_INFO_EXPRESSION_TYPE("T & T")!>this<!>.funNullableT()
<!DEBUG_INFO_EXPRESSION_TYPE("T & T")!>this<!>.funNullableAny()
<!DEBUG_INFO_EXPRESSION_TYPE("T & T")!>this<!>.get()
<!DEBUG_INFO_EXPRESSION_TYPE("T & T")!>this<!>.compareTo(null)
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>this<!>
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>this<!>.equals(null)
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>this<!>.propT
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>this<!>.propAny
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>this<!>.propNullableT
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>this<!>.propNullableAny
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>this<!>.funT()
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>this<!>.funAny()
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>this<!>.funNullableT()
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>this<!>.funNullableAny()
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>this<!>.get()
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>this<!>.compareTo(null)
equals(null)
@@ -3818,8 +3818,8 @@ fun Nothing?.case_62() {
// TESTCASE NUMBER: 63
fun Nothing.case_63() {
if (this != null) {
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Nothing & kotlin.Nothing")!>this<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Nothing & kotlin.Nothing")!>this<!>.hashCode()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Nothing")!>this<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Nothing")!>this<!>.hashCode()
hashCode()
apply {
@@ -388,17 +388,17 @@ fun <T> case_8(x: T) {
// TESTCASE NUMBER: 9
fun <T : Number> case_9(x: T) {
if (x != null) {
<!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()
<!DEBUG_INFO_EXPRESSION_TYPE("T & T")!>x<!>.toByte()
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.equals(null)
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.propT
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.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<!>.funAny()
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.funNullableT()
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.funNullableAny()
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.toByte()
x.equals(null)
@@ -683,18 +683,18 @@ fun <T> case_12(x: T) where T : Number?, T: Interface1? {
*/
fun <T> case_13(x: T) where T : Out<*>?, T: Comparable<T?> {
if (x != null) {
<!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()
<!DEBUG_INFO_EXPRESSION_TYPE("T & T")!>x<!>.get()
<!DEBUG_INFO_EXPRESSION_TYPE("T & T")!>x<!>.compareTo(null)
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.equals(null)
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.propT
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.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<!>.funAny()
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.funNullableT()
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.funNullableAny()
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.get()
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.compareTo(null)
x.equals(null)
@@ -3987,18 +3987,18 @@ fun <T> case_56(x: T) where T : Number?, T: Interface1? {
*/
fun <T> case_57(x: T) where T : Out<*>?, T: Comparable<T?> {
if (x != null) {
<!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()
<!DEBUG_INFO_EXPRESSION_TYPE("T & T")!>x<!>.get()
<!DEBUG_INFO_EXPRESSION_TYPE("T & T")!>x<!>.compareTo(null)
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.equals(null)
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.propT
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.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<!>.funAny()
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.funNullableT()
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.funNullableAny()
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.get()
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.compareTo(null)
x.equals(null)
@@ -5,7 +5,7 @@
// TESTCASE NUMBER: 1
fun case_1(vararg x: Int?) {
if (x != null) {
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Array<out kotlin.Int?> & kotlin.Array<out kotlin.Int?>")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Array<out kotlin.Int?>")!>x<!>
x[0]
}
}
@@ -30,7 +30,7 @@ fun case_2(vararg x: Int?) {
// TESTCASE NUMBER: 3
fun <T> case_3(vararg x: T?) {
if (x != null) {
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Array<out T?> & kotlin.Array<out T?>")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Array<out T?>")!>x<!>
x[0]
}
}
@@ -99,11 +99,11 @@ fun case_6(x: Class?) {
*/
fun case_7(x: Class) {
if (x!!.prop_8?.prop_8?.prop_8?.prop_8 != null) {
<!DEBUG_INFO_EXPRESSION_TYPE("Class & Class")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("Class & Class")!>x<!>.prop_8
<!DEBUG_INFO_EXPRESSION_TYPE("Class & Class")!>x<!>.prop_8<!UNSAFE_CALL!>.<!>prop_8
<!DEBUG_INFO_EXPRESSION_TYPE("Class & Class")!>x<!>.prop_8<!UNSAFE_CALL!>.<!>prop_8<!UNSAFE_CALL!>.<!>prop_8
<!DEBUG_INFO_EXPRESSION_TYPE("Class & Class")!>x<!>.prop_8<!UNSAFE_CALL!>.<!>prop_8<!UNSAFE_CALL!>.<!>prop_8<!UNSAFE_CALL!>.<!>prop_8
<!DEBUG_INFO_EXPRESSION_TYPE("Class")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("Class")!>x<!>.prop_8
<!DEBUG_INFO_EXPRESSION_TYPE("Class")!>x<!>.prop_8<!UNSAFE_CALL!>.<!>prop_8
<!DEBUG_INFO_EXPRESSION_TYPE("Class")!>x<!>.prop_8<!UNSAFE_CALL!>.<!>prop_8<!UNSAFE_CALL!>.<!>prop_8
<!DEBUG_INFO_EXPRESSION_TYPE("Class")!>x<!>.prop_8<!UNSAFE_CALL!>.<!>prop_8<!UNSAFE_CALL!>.<!>prop_8<!UNSAFE_CALL!>.<!>prop_8
}
}
@@ -114,11 +114,11 @@ fun case_7(x: Class) {
*/
fun case_8(x: Class) {
if (x!!.prop_8?.prop_8?.prop_8?.prop_8 != null) {
<!DEBUG_INFO_EXPRESSION_TYPE("Class & Class")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("Class & Class")!>x<!>.prop_8
<!DEBUG_INFO_EXPRESSION_TYPE("Class & Class")!>x<!>.prop_8<!UNSAFE_CALL!>.<!>prop_8
<!DEBUG_INFO_EXPRESSION_TYPE("Class & Class")!>x<!>.prop_8<!UNSAFE_CALL!>.<!>prop_8<!UNSAFE_CALL!>.<!>prop_8
<!DEBUG_INFO_EXPRESSION_TYPE("Class & Class")!>x<!>.prop_8<!UNSAFE_CALL!>.<!>prop_8<!UNSAFE_CALL!>.<!>prop_8<!UNSAFE_CALL!>.<!>prop_8
<!DEBUG_INFO_EXPRESSION_TYPE("Class")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("Class")!>x<!>.prop_8
<!DEBUG_INFO_EXPRESSION_TYPE("Class")!>x<!>.prop_8<!UNSAFE_CALL!>.<!>prop_8
<!DEBUG_INFO_EXPRESSION_TYPE("Class")!>x<!>.prop_8<!UNSAFE_CALL!>.<!>prop_8<!UNSAFE_CALL!>.<!>prop_8
<!DEBUG_INFO_EXPRESSION_TYPE("Class")!>x<!>.prop_8<!UNSAFE_CALL!>.<!>prop_8<!UNSAFE_CALL!>.<!>prop_8<!UNSAFE_CALL!>.<!>prop_8
}
}
// TESTCASE NUMBER: 9
@@ -63,7 +63,7 @@ fun case_6(x: EmptyClass) {
// TESTCASE NUMBER: 7
fun case_7() {
if (anonymousTypeProperty == null || <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any & kotlin.Any")!>anonymousTypeProperty<!> == null) {
if (anonymousTypeProperty == null || <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any")!>anonymousTypeProperty<!> == null) {
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any")!>anonymousTypeProperty<!>
}
}
@@ -258,7 +258,7 @@ fun case_23(a: ((Float) -> Int), b: Float) {
if (a == null && b == null) {
val x = <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>a(<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Float")!>b<!>)<!>
if (x !== null) {
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int & kotlin.Int")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>x<!>
}
}
}
@@ -12,7 +12,7 @@ fun case_1(x: Int?) = x
fun case_1() {
var x: Int? = 10
x = null
case_1(<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int? & kotlin.Int?")!>x<!>)
case_1(<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int?")!>x<!>)
}
// TESTCASE NUMBER: 2
@@ -21,7 +21,7 @@ fun case_2(x: Nothing?) = x
fun case_2() {
var x: Int? = 10
x = null
case_2(<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int? & kotlin.Int?")!>x<!>)
case_2(<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int?")!>x<!>)
}
// TESTCASE NUMBER: 3
@@ -29,7 +29,7 @@ fun case_3(x: String?) = x
fun case_3() {
var x: Int? = 10
x = null
<!INAPPLICABLE_CANDIDATE!>case_3<!>(<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int? & kotlin.Int?")!>x<!>)
<!INAPPLICABLE_CANDIDATE!>case_3<!>(<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int?")!>x<!>)
}
/*
@@ -42,7 +42,7 @@ fun Int?.case_4() = this
fun case_4() {
var x: Int? = 10
x = null
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int? & kotlin.Int?")!>x<!>.case_4()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int?")!>x<!>.case_4()
}
// TESTCASE NUMBER: 5
@@ -51,7 +51,7 @@ fun Nothing?.case_5() = this
fun case_5() {
var x: Int? = 10
x = null
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int? & kotlin.Int?")!>x<!>.case_5()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int?")!>x<!>.case_5()
}
// TESTCASE NUMBER: 6
@@ -59,7 +59,7 @@ fun String?.case_6() = this
fun case_6() {
var x: Int? = 10
x = null
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int? & kotlin.Int?")!>x<!>.<!INAPPLICABLE_CANDIDATE!>case_6<!>()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int?")!>x<!>.<!INAPPLICABLE_CANDIDATE!>case_6<!>()
}
/*
@@ -72,7 +72,7 @@ fun <T : Int?> T.case_7() = this
fun case_7() {
var x: Int? = 10
x = null
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int? & kotlin.Int?")!>x<!>.case_7()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int?")!>x<!>.case_7()
}
// TESTCASE NUMBER: 8
@@ -81,7 +81,7 @@ fun <T : Nothing?> T.case_8() = this
fun case_8() {
var x: Int? = 10
x = null
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int? & kotlin.Int?")!>x<!>.case_8()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int?")!>x<!>.case_8()
}
// TESTCASE NUMBER: 9
@@ -89,7 +89,7 @@ fun <T : String?> T.case_9() = this
fun case_9() {
var x: Int? = 10
x = null
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int? & kotlin.Int?")!>x<!>.<!INAPPLICABLE_CANDIDATE!>case_9<!>()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int?")!>x<!>.<!INAPPLICABLE_CANDIDATE!>case_9<!>()
}
/*
@@ -102,7 +102,7 @@ fun <T : Int> T?.case_10() = this
fun case_10() {
var x: Int? = 10
x = null
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int? & kotlin.Int?")!>x<!>.case_10()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int?")!>x<!>.case_10()
}
// TESTCASE NUMBER: 11
@@ -110,5 +110,5 @@ fun <T : String> T?.case_11() = this
fun case_11() {
var x: Int? = 10
x = null
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int? & kotlin.Int?")!>x<!>.<!INAPPLICABLE_CANDIDATE!>case_11<!>()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int?")!>x<!>.<!INAPPLICABLE_CANDIDATE!>case_11<!>()
}
@@ -16,7 +16,7 @@ class Case1<T> {
if (x == null) {
x = getT()
}
<!DEBUG_INFO_EXPRESSION_TYPE("T? & T?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("T?")!>x<!>
return x
}
}
@@ -79,8 +79,8 @@ fun case_6(x: Any?) {
when (x) {
is Nothing? -> return
is Any? -> {
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & kotlin.Any?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & kotlin.Any?")!>x<!><!UNSAFE_CALL!>.<!>equals(10)
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any?")!>x<!><!UNSAFE_CALL!>.<!>equals(10)
}
}
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any?")!>x<!>
@@ -36,7 +36,7 @@ fun case_4(x: Any?) {
// TESTCASE NUMBER: 5
fun case_5(x: Class) {
if (x!!.prop_8 != null) {
<!DEBUG_INFO_EXPRESSION_TYPE("Class & Class")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("Class & Class")!>x<!>.prop_8<!UNSAFE_CALL!>.<!>prop_8
<!DEBUG_INFO_EXPRESSION_TYPE("Class")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("Class")!>x<!>.prop_8<!UNSAFE_CALL!>.<!>prop_8
}
}
@@ -131,17 +131,17 @@ fun case_7() {
// TESTCASE NUMBER: 8
fun case_8(x: TypealiasString) {
if (x !== null && <!DEBUG_INFO_EXPRESSION_TYPE("TypealiasString & TypealiasString")!>x<!> != null) {
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasString & TypealiasString")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasString & TypealiasString")!>x<!>.equals(null)
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasString & TypealiasString")!>x<!>.propT
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasString & TypealiasString")!>x<!>.propAny
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasString & TypealiasString")!>x<!>.propNullableT
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasString & TypealiasString")!>x<!>.propNullableAny
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasString & TypealiasString")!>x<!>.funT()
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasString & TypealiasString")!>x<!>.funAny()
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasString & TypealiasString")!>x<!>.funNullableT()
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasString & TypealiasString")!>x<!>.funNullableAny()
if (x !== null && <!DEBUG_INFO_EXPRESSION_TYPE("TypealiasString")!>x<!> != null) {
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasString")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasString")!>x<!>.equals(null)
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasString")!>x<!>.propT
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasString")!>x<!>.propAny
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasString")!>x<!>.propNullableT
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasString")!>x<!>.propNullableAny
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasString")!>x<!>.funT()
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasString")!>x<!>.funAny()
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasString")!>x<!>.funNullableT()
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasString")!>x<!>.funNullableAny()
}
}
@@ -42,6 +42,6 @@ fun case_2(): Int {
var c: Int = 0
c = 0
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int & kotlin.Int")!>c<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>c<!>
return c
}