From f24f0017a0d1891a7e0045efdad15275f729701e Mon Sep 17 00:00:00 2001 From: Denis Zharkov Date: Mon, 13 Nov 2017 15:19:09 +0300 Subject: [PATCH] Add diagnostic for unexpected KNPE in control-flow analysis See KT-20895 --- .../org/jetbrains/kotlin/cfg/PseudocodeVariablesData.kt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/cfg/PseudocodeVariablesData.kt b/compiler/frontend/src/org/jetbrains/kotlin/cfg/PseudocodeVariablesData.kt index 9e28b73a1b0..c0b35fb53c1 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/cfg/PseudocodeVariablesData.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/cfg/PseudocodeVariablesData.kt @@ -337,7 +337,14 @@ class PseudocodeVariablesData(val pseudocode: Pseudocode, private val bindingCon } }.mapValues { (instruction, edges) -> - val edgeForTrivialVals = resultForTrivialVals[instruction]!! + val edgeForTrivialVals = + resultForTrivialVals[instruction] + ?: error( + """ + Unknown trivial result for $instruction in pseudocode for declaration: + ${pseudocode.correspondingElement.text} + """.trimIndent() + ) Edges( edgeForTrivialVals.incoming.replaceDelegate(edges.incoming),