From 1737c7251a0d23d8f500adbe2e6403279e5838ed Mon Sep 17 00:00:00 2001 From: Stanislav Erokhin Date: Tue, 13 Oct 2015 19:21:48 +0300 Subject: [PATCH] Minor. Extract createLookupLocation for call --- .../kotlin/resolve/calls/tasks/TaskPrioritizer.kt | 12 ++---------- .../jetbrains/kotlin/resolve/calls/util/callUtil.kt | 11 ++++++++++- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tasks/TaskPrioritizer.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tasks/TaskPrioritizer.kt index 8621d323155..a37d3673390 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tasks/TaskPrioritizer.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tasks/TaskPrioritizer.kt @@ -18,16 +18,14 @@ package org.jetbrains.kotlin.resolve.calls.tasks import com.google.common.collect.Lists import org.jetbrains.kotlin.descriptors.* -import org.jetbrains.kotlin.incremental.KotlinLookupLocation import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.progress.ProgressIndicatorAndCompilationCanceledStatus import org.jetbrains.kotlin.psi.Call -import org.jetbrains.kotlin.psi.KtFile -import org.jetbrains.kotlin.psi.doNotAnalyze import org.jetbrains.kotlin.resolve.DescriptorUtils import org.jetbrains.kotlin.resolve.calls.callResolverUtil.getUnaryPlusOrMinusOperatorFunctionName import org.jetbrains.kotlin.resolve.calls.callResolverUtil.isConventionCall import org.jetbrains.kotlin.resolve.calls.callResolverUtil.isOrOverridesSynthesized +import org.jetbrains.kotlin.resolve.calls.callUtil.createLookupLocation import org.jetbrains.kotlin.resolve.calls.context.BasicCallResolutionContext import org.jetbrains.kotlin.resolve.calls.context.ResolutionContext import org.jetbrains.kotlin.resolve.calls.smartcasts.SmartCastManager @@ -336,13 +334,7 @@ public class TaskPrioritizer( } } - private fun createLookupLocation(c: TaskPrioritizerContext<*, *>) = KotlinLookupLocation(c.context.call.run { - calleeExpression?.let { - // Can't use getContainingJetFile() because we can get from IDE an element with JavaDummyHolder as containing file - if ((it.containingFile as? KtFile)?.doNotAnalyze == null) it else null - } - ?: callElement - }) + private fun createLookupLocation(c: TaskPrioritizerContext<*, *>) = c.context.call.createLookupLocation() private fun addCandidatesForInvoke(explicitReceiver: ReceiverWithTypes, c: TaskPrioritizerContext) { val implicitReceivers = c.scope.getImplicitReceiversHierarchy().map { it.value } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/util/callUtil.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/util/callUtil.kt index 4f525700a22..6594b2be40a 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/util/callUtil.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/util/callUtil.kt @@ -20,6 +20,7 @@ import com.intellij.psi.util.PsiTreeUtil import org.jetbrains.kotlin.descriptors.CallableDescriptor import org.jetbrains.kotlin.descriptors.FunctionDescriptor import org.jetbrains.kotlin.descriptors.ValueParameterDescriptor +import org.jetbrains.kotlin.incremental.KotlinLookupLocation import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.psiUtil.getTextWithLocation @@ -194,4 +195,12 @@ public fun Call.isSafeCall(): Boolean { return isExplicitSafeCall() } -public fun Call.isExplicitSafeCall(): Boolean = getCallOperationNode()?.getElementType() == KtTokens.SAFE_ACCESS \ No newline at end of file +public fun Call.isExplicitSafeCall(): Boolean = getCallOperationNode()?.getElementType() == KtTokens.SAFE_ACCESS + +public fun Call.createLookupLocation() = KotlinLookupLocation(run { + calleeExpression?.let { + // Can't use getContainingJetFile() because we can get from IDE an element with JavaDummyHolder as containing file + if ((it.containingFile as? KtFile)?.doNotAnalyze == null) it else null + } + ?: callElement +})