Minor. Extract createLookupLocation for call

This commit is contained in:
Stanislav Erokhin
2015-10-13 19:21:48 +03:00
parent 0120139f9c
commit 1737c7251a
2 changed files with 12 additions and 11 deletions
@@ -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 <D : CallableDescriptor, F : D> addCandidatesForInvoke(explicitReceiver: ReceiverWithTypes, c: TaskPrioritizerContext<D, F>) {
val implicitReceivers = c.scope.getImplicitReceiversHierarchy().map { it.value }
@@ -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
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
})