From de105e602d3a0b0422a2d63a7bbb9a70dad7444f Mon Sep 17 00:00:00 2001 From: pyos Date: Fri, 16 Dec 2022 12:23:00 +0100 Subject: [PATCH] FIR CFA: remove redundant entries from `followingCfgNodes` Edges to subgraphs should now be correctly added, so there's no need to look at them separately. --- .../kotlin/fir/analysis/cfa/util/CfgUtils.kt | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/cfa/util/CfgUtils.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/cfa/util/CfgUtils.kt index 7f5b21df662..b94b140ad38 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/cfa/util/CfgUtils.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/cfa/util/CfgUtils.kt @@ -6,7 +6,6 @@ package org.jetbrains.kotlin.fir.analysis.cfa.util import org.jetbrains.kotlin.fir.resolve.dfa.cfg.CFGNode -import org.jetbrains.kotlin.fir.resolve.dfa.cfg.CFGNodeWithSubgraphs import org.jetbrains.kotlin.fir.resolve.dfa.cfg.ControlFlowGraph fun ControlFlowGraph.getEnterNode(direction: TraverseDirection): CFGNode<*> = when (direction) { @@ -30,14 +29,7 @@ val CFGNode<*>.previousCfgNodes: List> } val CFGNode<*>.followingCfgNodes: List> - get() { - val nodes = mutableListOf>() - - followingNodes.filterTo(nodes) { - val kind = edgeTo(it).kind - kind.usedInCfa && !kind.isDead - } - (this as? CFGNodeWithSubgraphs<*>)?.subGraphs?.mapTo(nodes) { it.enterNode } - - return nodes + get() = followingNodes.filter { + val kind = edgeTo(it).kind + kind.usedInCfa && !kind.isDead }