fun exhaustive(x: Int): Int { var r: Int when (x) { 1 -> r = 1 2 -> r = 2 3 -> r = 3 else -> r = 4 } return r } fun nonExhaustive(x: Int): Int { var r: Int = 4 when (x) { 1 -> r = 1 2 -> r = 2 3 -> r = 3 } return r } fun box(): String { var result = (0..3).map(::exhaustive).makeString() if (result != "4, 1, 2, 3") return "exhaustive:" + result result = (0..3).map(::nonExhaustive).makeString() if (result != "4, 1, 2, 3") return "non-exhaustive:" + result return "OK" }