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,20 @@
|
||||
sealed class Sealed {
|
||||
object First: Sealed()
|
||||
sealed class NonFirst {
|
||||
object Second: NonFirst()
|
||||
object Third: NonFirst()
|
||||
object Fourth: Sealed()
|
||||
}
|
||||
}
|
||||
|
||||
fun foo(s: Sealed, nf: Sealed.NonFirst): Int {
|
||||
val si = when(s) {
|
||||
Sealed.First -> 1
|
||||
Sealed.NonFirst.Fourth -> 4
|
||||
}
|
||||
val nfi = when(nf) {
|
||||
Sealed.NonFirst.Second -> 2
|
||||
Sealed.NonFirst.Third -> 3
|
||||
}
|
||||
return si + nfi
|
||||
}
|
||||
Reference in New Issue
Block a user