| // FIR_IDENTICAL | |
| sealed class Sealed(val x: Int) { | |
| data class Tuple(val x: Int, val y: Int) | |
| object First: Sealed(12) | |
| open class NonFirst(tuple: Tuple): Sealed(tuple.x) { | |
| val y: Int = tuple.y | |
| object Second: NonFirst(Tuple(34, 2)) | |
| object Third: NonFirst(Tuple(56, 3)) | |
| } | |
| } | |
| fun foo(s: Sealed): Int { | |
| return when(s) { | |
| is Sealed.First -> 1 | |
| is Sealed.NonFirst -> 0 | |
| // no else required | |
| } | |
| } | |