Files
kotlin-fork/compiler/testData/diagnostics/tests/sealed/OperationWhen.kt
T

22 lines
719 B
Kotlin
Vendored

// FIR_IDENTICAL
sealed class Operation(val left: Int, val right: Int) {
abstract fun exec(): Int
class Plus(left: Int, right: Int): Operation(left, right) {
override fun exec(): Int = left + right
}
class Minus(left: Int, right: Int): Operation(left, right) {
override fun exec(): Int = left - right
}
class Times(left: Int, right: Int): Operation(left, right) {
override fun exec(): Int = left * right
}
class Slash(left: Int, right: Int): Operation(left, right) {
override fun exec(): Int = left / right
}
}
fun priority(op: Operation) = when(op) {
is Operation.Plus, is Operation.Minus -> 1
is Operation.Times, is Operation.Slash -> 2
}