From 15cc9793787fbbcd7b8662411f8ce7cf605e90ba Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Thu, 12 Nov 2020 11:47:26 +0300 Subject: [PATCH] [FIR] Add enter contract node as exit for exceptional path to avoid compiler crashing This fixes crashing test `FirDiagnosticsTestSpecGenerated.NotLinked.Contracts.Declarations.ContractBuilder.Common.Neg.test17` --- .../kotlin/fir/resolve/dfa/cfg/ControlFlowGraphBuilder.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/cfg/ControlFlowGraphBuilder.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/cfg/ControlFlowGraphBuilder.kt index 3576738c337..5446b6ffedb 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/cfg/ControlFlowGraphBuilder.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/cfg/ControlFlowGraphBuilder.kt @@ -1137,11 +1137,13 @@ class ControlFlowGraphBuilder { return createContractDescriptionEnterNode().also { lastNodes.push(it) + exitTargetsForTry.push(it) } } fun exitContractDescription() { lastNodes.pop() + exitTargetsForTry.pop() popGraph() }