| // FIR_IDENTICAL | |
| 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 | |
| } |