blob: 44b78f435980803935374b5b584bbab64f0be052 [file]
// WITH_STDLIB
// DUMP_IR
// LANGUAGE: +NoWhenBranchMatchedExceptionWithMessage
// IGNORE_BACKEND: JS_IR, JS_IR_ES6
// ^ JS fails with Error loading module 'kotlin_m1'. Its dependency 'kotlin_m12' was not found
// DONT_TARGET_EXACT_BACKEND: NATIVE
// ^Native fails on Linux with ld.lld: error: duplicate symbol: kfun:box._when_.NoWhenBranchMatchedException.pkg1.S#$clinit_trigger#static(){}
// WASM_IGNORE_FOR: mode=multi-module
// ^KT-88076
// MODULE: m1
// FILE: m1.kt
sealed interface S
class K : S
// MODULE: m12
// FILE: m1.kt
sealed interface S
class K : S
class K2 : S
// MODULE: m2(m1)
// FILE: m2.kt
fun test(s: S): String {
return when (s) {
is K -> ""
}
}
// MODULE: m3(m12, m2)
// FILE: box.kt
fun box(): String {
try {
test(K2())
} catch (e: Exception) {
val m = e.message!!
if (!m.startsWith("No branch matched for subject: K2")) return "wrong message: $m"
return "OK"
}
return "exception was expected"
}
/* GENERATED_FIR_TAGS: classDeclaration, functionDeclaration, isExpression, javaFunction, javaType, sealed,
stringLiteral, whenExpression, whenWithSubject */