From 862aa8d1aa7fe32f0e5314cf3ed53657c4fa8e42 Mon Sep 17 00:00:00 2001 From: Mikhail Zarechenskiy Date: Mon, 10 Sep 2018 12:16:24 +0300 Subject: [PATCH] Fix exception: don't try to get value of error constant #EA-126623 Fixed --- .../org/jetbrains/kotlin/contracts/EffectsExtractingVisitor.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/contracts/EffectsExtractingVisitor.kt b/compiler/frontend/src/org/jetbrains/kotlin/contracts/EffectsExtractingVisitor.kt index 519b73f6987..6d126942c58 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/contracts/EffectsExtractingVisitor.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/contracts/EffectsExtractingVisitor.kt @@ -38,6 +38,7 @@ import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowValue import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowValueFactory import org.jetbrains.kotlin.resolve.calls.tasks.ExplicitReceiverKind import org.jetbrains.kotlin.resolve.constants.CompileTimeConstant +import org.jetbrains.kotlin.resolve.constants.UnsignedErrorValueTypeConstant import org.jetbrains.kotlin.resolve.scopes.receivers.ExpressionReceiver import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue import org.jetbrains.kotlin.types.KotlinType @@ -95,6 +96,8 @@ class EffectsExtractingVisitor( val compileTimeConstant: CompileTimeConstant<*> = bindingContext.get(BindingContext.COMPILE_TIME_VALUE, expression) ?: return UNKNOWN_COMPUTATION + if (compileTimeConstant.isError || compileTimeConstant is UnsignedErrorValueTypeConstant) return UNKNOWN_COMPUTATION + val value: Any? = compileTimeConstant.getValue(type) return when (value) {