blob: d428e7b5965c7d8133bf4624325fefea2ee87e3c [file]
// RUN_PIPELINE_TILL: FRONTEND
//KT-2146 Nullability casts in when.
package kt2146
fun f1(s: Int?): Int {
return when (s) {
null -> 3
else -> <!DEBUG_INFO_SMARTCAST!>s<!>
}
}
fun f2(s: Int?): Int {
return when (s) {
!is Int -> <!TYPE_MISMATCH!>s<!>
else -> <!DEBUG_INFO_SMARTCAST!>s<!>
}
}
fun f3(s: Int?): Int {
return when (s) {
is Int -> <!DEBUG_INFO_SMARTCAST!>s<!>
else -> <!TYPE_MISMATCH!>s<!>
}
}
fun f4(s: Int?): Int {
return when {
s == 4 -> <!DEBUG_INFO_SMARTCAST!>s<!>
s == null -> <!DEBUG_INFO_CONSTANT, TYPE_MISMATCH!>s<!>
else -> <!DEBUG_INFO_SMARTCAST!>s<!>
}
}
fun f5(s: Int?): Int {
return when (s) {
s -> <!TYPE_MISMATCH!>s<!>
s!! -> <!DEBUG_INFO_SMARTCAST!>s<!>
s -> <!DEBUG_INFO_SMARTCAST!>s<!>
else -> 0
}
}
fun f6(s: Int?): Int {
return when {
s is Int -> <!DEBUG_INFO_SMARTCAST!>s<!>
else -> <!TYPE_MISMATCH!>s<!>
}
}
fun f7(s: Int?): Int {
return when {
s !is Int -> <!TYPE_MISMATCH!>s<!>
else -> <!DEBUG_INFO_SMARTCAST!>s<!>
}
}
/* GENERATED_FIR_TAGS: checkNotNullCall, equalityExpression, functionDeclaration, integerLiteral, isExpression,
nullableType, smartcast, whenExpression, whenWithSubject */