Exhaustive when support for sealed classes #KT-7606 Fixed
When on sealed can use is (both for derived classes and objects) or just comparison (only for derived objects). A pack of tests provided.
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
sealed class Sealed(val x: Int) {
|
||||
object First: Sealed(12)
|
||||
open class NonFirst(x: Int, val y: Int): Sealed(x) {
|
||||
object Second: NonFirst(34, 2)
|
||||
object Third: NonFirst(56, 3)
|
||||
}
|
||||
}
|
||||
|
||||
fun foo(s: Sealed?): Int {
|
||||
return when(s) {
|
||||
is Sealed.First -> 1
|
||||
is Sealed.NonFirst -> 0
|
||||
null -> -1
|
||||
// no else required
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user