include::../description.adoc[]

== Noncompliant Code Example

----
when(param) { // missing else
  1 -> doSomething()
  2 -> doSomethingElse()
}
----

== Compliant Solution

----
when(param) {
  1 -> doSomething()
  2 -> doSomethingElse()
  else -> error("myMessage")
}
----

== Exceptions

If the ``++when++`` clause is used as an expression, Kotlin compiler already enforces that all possible cases are covered with branch conditions. So no issue will be raised in this case.

Example:

----
enum class Day {
    SUNDAY, MONDAY
}
...
val myVal = when(day) {
  MyEnum.SUNDAY -> 1
  MyEnum.MONDAY -> 2
}
----

include::../see.adoc[]
