!fixup [K/N] DataFlowAnalysis abstraction
diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/optimizations/DataFlowAnalysis.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/optimizations/DataFlowAnalysis.kt index bdac6ac..9399e4f 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/optimizations/DataFlowAnalysis.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/optimizations/DataFlowAnalysis.kt
@@ -7,6 +7,7 @@ import org.jetbrains.kotlin.backend.common.ir.isUnconditional import org.jetbrains.kotlin.ir.IrElement +import org.jetbrains.kotlin.ir.expressions.IrBranch import org.jetbrains.kotlin.ir.expressions.IrBreak import org.jetbrains.kotlin.ir.expressions.IrContinue import org.jetbrains.kotlin.ir.expressions.IrDoWhileLoop @@ -70,6 +71,8 @@ return resultData } + final override fun visitBranch(branch: IrBranch, data: T): T = error("Should not call this") + override fun visitWhen(expression: IrWhen, data: T): T { val conditions = expression.branches.map { it.condition } val conditionResults = conditions.fold(listOf<T>()) { acc, next -> @@ -83,6 +86,9 @@ return lattice.meetAll(branchResults + elseResult) } + final override fun visitWhileLoop(loop: IrWhileLoop, data: T): T = super.visitWhileLoop(loop, data) + final override fun visitDoWhileLoop(loop: IrDoWhileLoop, data: T): T = super.visitDoWhileLoop(loop, data) + override fun visitLoop(loop: IrLoop, data: T): T { continuedStates[loop] = lattice.top breakedStates[loop] = lattice.top