blob: cc27a24e4987312ef560c100e44d02efc44ef173 [file] [log] [blame]
// IGNORE_BACKEND_K2: JVM_IR
enum class A { V1 }
fun testVariableAssignment_throws(a: A) {
val x: Int
when (a) {
A.V1 -> x = 11
// else -> throw
}
}
fun testStatement_empty(a: A) {
when (a) {
A.V1 -> 1
// else -> {}
}
}
fun testParenthesized_throwsJvm(a: A) {
(when (a) {
A.V1 -> 1
// JVM: else -> throw
// JVM_IR: else -> {}
})
}
fun testAnnotated_throwsJvm(a: A) {
@Suppress("") when (a) {
A.V1 -> 1
// JVM: else -> throw
// JVM_IR: else -> {}
}
}
fun testExpression_throws(a: A) =
when (a) {
A.V1 -> 1
// else -> throw
}
fun testIfTheElseStatement_empty(a: A, flag: Boolean) {
if (flag)
0
else {
when (a) {
A.V1 -> 1
// else -> {}
}
}
}
fun testIfTheElseParenthesized_throwsJvm(a: A, flag: Boolean) {
(if (flag)
0
else {
when (a) {
A.V1 -> 1
// JVM: else -> throw
// JVM_IR: else -> {}
}
})
}
fun testIfTheElseAnnotated_throwsJvm(a: A, flag: Boolean) {
@Suppress("")
if (flag)
0
else {
when (a) {
A.V1 -> 1
// JVM: else -> throw
// JVM_IR: else -> {}
}
}
}
fun testLambdaResultExpression_throws(a: A) {
{
when (a) {
A.V1 -> 1
// else -> throw
}
}.let { it() }
}
// JVM_TEMPLATES
// 7 ATHROW
// JVM_IR_TEMPLATES
// 3 ATHROW