diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/temporaryVals/FastStoreLoadAnalyzer.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/temporaryVals/FastStoreLoadAnalyzer.kt index f27e1af5ce0..c00400ca998 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/temporaryVals/FastStoreLoadAnalyzer.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/temporaryVals/FastStoreLoadAnalyzer.kt @@ -42,11 +42,9 @@ import org.jetbrains.org.objectweb.asm.tree.analysis.Frame import org.jetbrains.org.objectweb.asm.tree.analysis.Interpreter import org.jetbrains.org.objectweb.asm.tree.analysis.Value -interface StoreLoadValue : Value +abstract class StoreLoadInterpreter : Interpreter(API_VERSION) -abstract class StoreLoadInterpreter : Interpreter(API_VERSION) - -class StoreLoadFrame(val maxLocals: Int) : Frame(maxLocals, 0) { +class StoreLoadFrame(val maxLocals: Int) : Frame(maxLocals, 0) { override fun execute(insn: AbstractInsnNode, interpreter: Interpreter) { when (insn.opcode) { in Opcodes.ISTORE..Opcodes.ASTORE -> { @@ -65,7 +63,7 @@ class StoreLoadFrame(val maxLocals: Int) : Frame(maxLocal } } -class FastStoreLoadAnalyzer( +class FastStoreLoadAnalyzer( owner: String, method: MethodNode, interpreter: StoreLoadInterpreter diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/temporaryVals/TemporaryVals.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/temporaryVals/TemporaryVals.kt index 2acc01925be..7007435c95a 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/temporaryVals/TemporaryVals.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/temporaryVals/TemporaryVals.kt @@ -14,6 +14,7 @@ import org.jetbrains.org.objectweb.asm.Type import org.jetbrains.org.objectweb.asm.tree.AbstractInsnNode import org.jetbrains.org.objectweb.asm.tree.MethodNode import org.jetbrains.org.objectweb.asm.tree.VarInsnNode +import org.jetbrains.org.objectweb.asm.tree.analysis.Value // A temporary val is a local variables that is: @@ -128,7 +129,7 @@ class TemporaryValsAnalyzer { val loads = LinkedHashSet() } - private sealed class StoredValue : StoreLoadValue { + private sealed class StoredValue : Value { // `StoredValue` represent some abstract value that doesn't really have a definition of size. // `getSize` can return either 1 or 2, so we use 1 here. override fun getSize(): Int = 1