[FIR] Introduce new algorithm for building CFG for declarations

This commit is contained in:
Dmitriy Novozhilov
2020-06-05 15:47:57 +03:00
parent 950bbfe3a5
commit 87859b0faa
95 changed files with 16070 additions and 13199 deletions
@@ -83,10 +83,9 @@ abstract class AbstractFirDiagnosticsTest : AbstractFirBaseDiagnosticsTest() {
val allFirFiles = firFilesPerSession.values.flatten()
checkDiagnostics(testDataFile, testFiles, allFirFiles)
checkFir(testDataFile, allFirFiles)
checkCfgEdgeConsistency(allFirFiles)
if (testFiles.any { it.withDumpCfgDirective }) {
checkCfg(testDataFile, allFirFiles)
checkCfgEdgeConsistency(allFirFiles)
} else {
checkCfgDumpNotExists(testDataFile)
}
@@ -307,7 +306,7 @@ abstract class AbstractFirDiagnosticsTest : AbstractFirBaseDiagnosticsTest() {
val fromKind = from.outgoingEdges.getValue(to)
val toKind = to.incomingEdges.getValue(from)
TestCase.assertEquals(fromKind, toKind)
if (from.isDead || to.isDead) {
if (from.isDead && to.isDead) {
KtUsefulTestCase.assertContainsElements(listOf(EdgeKind.Dead, EdgeKind.Cfg, EdgeKind.DeadBack, EdgeKind.Back), toKind)
}
}