From ca20c0b0bdaaa7a5f93f334f7615a56548557ff3 Mon Sep 17 00:00:00 2001 From: Dmitry Savvinov Date: Mon, 20 Aug 2018 14:08:05 +0300 Subject: [PATCH] Improve diagnostics for unrecognized InvocationKind in contracts --- .../contracts/parsing/effects/PsiCallsEffectParser.kt | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/contracts/parsing/effects/PsiCallsEffectParser.kt b/compiler/frontend/src/org/jetbrains/kotlin/contracts/parsing/effects/PsiCallsEffectParser.kt index 97d2c19d615..89d310fad4e 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/contracts/parsing/effects/PsiCallsEffectParser.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/contracts/parsing/effects/PsiCallsEffectParser.kt @@ -46,8 +46,14 @@ internal class PsiCallsEffectParser( val kind = when (kindArgument) { is DefaultValueArgument -> InvocationKind.UNKNOWN - is ExpressionValueArgument -> kindArgument.valueArgument?.getArgumentExpression()?.toInvocationKind(callContext.bindingContext) ?: return null - else -> return null + is ExpressionValueArgument -> kindArgument.valueArgument?.getArgumentExpression()?.toInvocationKind(callContext.bindingContext) + else -> null + } + + if (kind == null) { + val reportOn = (kindArgument as? ExpressionValueArgument)?.valueArgument?.getArgumentExpression() ?: expression + collector.badDescription("unrecognized InvocationKind", reportOn) + return null } return CallsEffectDeclaration(lambda, kind)