Every delivery state needs an explicit label. Find the line that defeats compile-time checking.
kotlin
sealed interface DeliveryState {
data object Queued : DeliveryState
data object Sent : DeliveryState
data class Failed(val reason: String) : DeliveryState
}
fun label(state: DeliveryState): String = when (state) {
DeliveryState.Queued -> "queued"
DeliveryState.Sent -> "sent"
else -> "unknown"
}
fun main() {
println(label(DeliveryState.Failed("offline")))
}