From 1dcdb72a49d0166de12d7c5a5b53abb7145b2461 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Thu, 13 Jul 2017 17:55:56 +0300 Subject: [PATCH] Process UastContext service absence (EA-100670) --- .../InvokeOperatorReferenceSearcher.kt | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/search/usagesSearch/operators/InvokeOperatorReferenceSearcher.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/search/usagesSearch/operators/InvokeOperatorReferenceSearcher.kt index c9fee2e6159..25b906a9e19 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/search/usagesSearch/operators/InvokeOperatorReferenceSearcher.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/search/usagesSearch/operators/InvokeOperatorReferenceSearcher.kt @@ -44,17 +44,24 @@ class InvokeOperatorReferenceSearcher( init { val uastContext = ServiceManager.getService(targetFunction.project, UastContext::class.java) - val uMethod = uastContext.convertOpt(targetDeclaration, null) - val uastParameters = uMethod?.uastParameters + callArgumentsSize = when { + uastContext != null -> { + val uMethod = uastContext.convertOpt(targetDeclaration, null) + val uastParameters = uMethod?.uastParameters - val isStableNumberOfArguments = uastParameters != null && uastParameters.none { it.uastInitializer != null || it.isVarArgs } - callArgumentsSize = if (isStableNumberOfArguments) { - val numberOfArguments = uastParameters!!.size - when { - targetFunction.isExtensionDeclaration() -> numberOfArguments - 1 - else -> numberOfArguments + val isStableNumberOfArguments = uastParameters != null && uastParameters.none { it.uastInitializer != null || it.isVarArgs } + if (isStableNumberOfArguments) { + val numberOfArguments = uastParameters!!.size + when { + targetFunction.isExtensionDeclaration() -> numberOfArguments - 1 + else -> numberOfArguments + } + } + else null } - } else null + + else -> null + } } override fun processPossibleReceiverExpression(expression: KtExpression) {