// !DIAGNOSTICS: -UNUSED_PARAMETER tailRecursive fun withWhen(counter : Int, d : Any) : Int = when (counter) { 0 -> counter 1, 2 -> withWhen(counter - 1, "1,2") in 3..49 -> withWhen(counter - 1, "3..49") 50 -> 1 + withWhen(counter - 1, "50") !in 0..50 -> withWhen(counter - 1, "!0..50") else -> withWhen(counter - 1, "else") } fun box() : String = if (withWhen(100000, "test") == 1) "OK" else "FAIL"