f6872dfbea
When on sealed can use is (both for derived classes and objects) or just comparison (only for derived objects). A pack of tests provided.
17 lines
395 B
Kotlin
Vendored
17 lines
395 B
Kotlin
Vendored
sealed class Sealed() {
|
|
object First: Sealed()
|
|
open class NonFirst: Sealed() {
|
|
object Second: NonFirst()
|
|
object Third: NonFirst()
|
|
// It's ALLOWED to inherit Sealed also from here
|
|
object Fourth: Sealed()
|
|
}
|
|
}
|
|
|
|
fun foo(s: Sealed) = when(s) {
|
|
Sealed.First -> 1
|
|
is Sealed.NonFirst -> 2
|
|
Sealed.NonFirst.Fourth -> 4
|
|
// no else required
|
|
}
|