import kotlin.test.assertEquals fun test1() { val u = when (true) { true -> 42 else -> 1.0 } assertEquals(42, u) } fun test2() { val u = 1L.let { when (it) { is Long -> if (it.toLong() == 2L) it.toLong() else it * 2L // CompilationException else -> it.toDouble() } } assertEquals(2L, u) } fun box(): String { test1() test2() return "OK" }