From c78da854f72967e08113a39b2e4f5b2175ba5dd3 Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Wed, 29 Jan 2020 13:56:23 +0300 Subject: [PATCH] [FIR] Make Stack an abstract class --- .../jetbrains/kotlin/fir/resolve/dfa/Stack.kt | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/Stack.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/Stack.kt index f15a01d4677..ffe981fb57e 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/Stack.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/Stack.kt @@ -10,11 +10,11 @@ import org.jetbrains.kotlin.fir.FirSymbolOwner import org.jetbrains.kotlin.fir.resolve.dfa.cfg.CFGNode import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol -interface Stack { - val size: Int - fun top(): T - fun pop(): T - fun push(value: T) +abstract class Stack { + abstract val size: Int + abstract fun top(): T + abstract fun pop(): T + abstract fun push(value: T) } fun stackOf(vararg values: T): Stack = StackImpl(*values) @@ -22,7 +22,7 @@ val Stack<*>.isEmpty: Boolean get() = size == 0 val Stack<*>.isNotEmpty: Boolean get() = size != 0 fun Stack.topOrNull(): T? = if (size == 0) null else top() -private class StackImpl(vararg values: T) : Stack { +private class StackImpl(vararg values: T) : Stack() { private val stack = mutableListOf(*values) override fun top(): T = stack[stack.size - 1] @@ -35,7 +35,7 @@ private class StackImpl(vararg values: T) : Stack { override val size: Int get() = stack.size } -class NodeStorage>() : Stack { +class NodeStorage> : Stack(){ private val stack: Stack = StackImpl() private val map: MutableMap = mutableMapOf() @@ -57,7 +57,7 @@ class NodeStorage>() : Stack { } } -class SymbolBasedNodeStorage> : Stack where T : FirElement { +class SymbolBasedNodeStorage> : Stack() where T : FirElement { private val stack: Stack = StackImpl() private val map: MutableMap, N> = mutableMapOf()