reactormonk
08/04/2022, 3:49 PMCurrentState
and DesiredState
. When doing val x = when (CurrentState to DesiredState) { ... }
, the exhaustiveness checker doesn't seem to like the non-existence of an else
, even if I covered all branches. Any way to help it out a bit?dmitriy.novozhilov
08/04/2022, 6:23 PMreactormonk
08/05/2022, 7:54 AMdmitriy.novozhilov
08/05/2022, 7:57 AMsealed class A
class B : A()
class C : A()
sealed class X
class Y : X()
class Z : X()
fun test(a: A, x: X) {
val result = when (a) {
is B -> when (x) {
is Y -> 1
is Z -> 2
}
is C -> when (x) {
is Y -> 3
is Z -> 4
}
}
}
reactormonk
08/05/2022, 7:57 AMwhen
statement?dmitriy.novozhilov
08/05/2022, 7:57 AMreactormonk
08/05/2022, 1:39 PMsealed class DesiredState: Parcelable {
@Parcelize
object MainPage: DesiredState()
@Parcelize
object AcceptCall: DesiredState()
}
?reactormonk
08/05/2022, 1:39 PMelse
branchdmitriy.novozhilov
08/05/2022, 1:47 PMsealed class DesiredState: Parcelable {
@Parcelize
object MainPage: DesiredState()
@Parcelize
object AcceptCall: DesiredState()
}
fun test(state: DesiredState) = when (state) {
is DesiredState.MainPage -> "OK"
is DesiredState.AcceptCall -> "Error"
}
Works finereactormonk
08/05/2022, 1:53 PMreactormonk
08/08/2022, 7:36 AMelse
branch, but the compiler is fine with it 🤔dmitriy.novozhilov
08/08/2022, 8:09 AMreactormonk
08/08/2022, 9:39 AMdmitriy.novozhilov
08/08/2022, 9:56 AM