From 80c64207f7f59d62499a52912b9cf5811bc47d87 Mon Sep 17 00:00:00 2001 From: Denis Zharkov Date: Fri, 27 Mar 2020 18:17:10 +0300 Subject: [PATCH] FIR: Rename CallResolutionContext -> CandidateFactoriesAndCollectors --- .../fir/resolve/calls/FirTowerResolver.kt | 16 +++++------ .../resolve/calls/FirTowerResolverSession.kt | 11 +++++--- .../fir/resolve/calls/TowerLevelHandler.kt | 28 +++++++++---------- 3 files changed, 29 insertions(+), 26 deletions(-) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/FirTowerResolver.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/FirTowerResolver.kt index 8e8ebc98a86..9a96b2fb6fe 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/FirTowerResolver.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/FirTowerResolver.kt @@ -20,19 +20,19 @@ class FirTowerResolver( collector: CandidateCollector = this.collector, manager: TowerResolveManager = this.manager ): CandidateCollector { - val callResolutionContext = buildCallResolutionContext(info, collector) + val candidateFactoriesAndCollectors = buildCandidateFactoriesAndCollectors(info, collector) - val towerResolverSession = FirTowerResolverSession(components, implicitReceiverValues, manager, callResolutionContext) + val towerResolverSession = FirTowerResolverSession(components, implicitReceiverValues, manager, candidateFactoriesAndCollectors) towerResolverSession.runResolution(info) manager.runTasks() return collector } - private fun buildCallResolutionContext( + private fun buildCandidateFactoriesAndCollectors( info: CallInfo, collector: CandidateCollector - ): CallResolutionContext { + ): CandidateFactoriesAndCollectors { val candidateFactory = CandidateFactory(components, info) val stubReceiverCandidateFactory = if (info.callKind == CallKind.CallableReference && info.stubReceiver != null) @@ -53,13 +53,13 @@ class FirTowerResolver( } } - return CallResolutionContext( + return CandidateFactoriesAndCollectors( candidateFactory, collector, - invokeReceiverCandidateFactory, - invokeBuiltinExtensionReceiverCandidateFactory, stubReceiverCandidateFactory, - invokeReceiverCollector + invokeReceiverCandidateFactory, + invokeReceiverCollector, + invokeBuiltinExtensionReceiverCandidateFactory ) } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/FirTowerResolverSession.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/FirTowerResolverSession.kt index 16f047ab7dd..97d98c3432f 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/FirTowerResolverSession.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/FirTowerResolverSession.kt @@ -38,7 +38,7 @@ class FirTowerResolverSession internal constructor( val components: BodyResolveComponents, implicitReceiverValues: List>, private val manager: TowerResolveManager, - private val callResolutionContext: CallResolutionContext, + private val candidateFactoriesAndCollectors: CandidateFactoriesAndCollectors, ) { private data class ImplicitReceiver( val receiver: ImplicitReceiverValue<*>, @@ -94,7 +94,10 @@ class FirTowerResolverSession internal constructor( LevelHandler( ) - return levelHandler.handleLevel(callInfo, explicitReceiverKind, group, callResolutionContext, towerLevel, invokeResolveMode) { + return levelHandler.handleLevel( + callInfo, explicitReceiverKind, group, + candidateFactoriesAndCollectors, towerLevel, invokeResolveMode + ) { enqueueResolverTasksForInvokeReceiverCandidates( invokeResolveMode, callInfo ) @@ -549,7 +552,7 @@ class FirTowerResolverSession internal constructor( ) { val invokeBuiltinExtensionMode = invokeResolveMode == InvokeResolveMode.RECEIVER_FOR_INVOKE_BUILTIN_EXTENSION - for (invokeReceiverCandidate in callResolutionContext.invokeReceiverCollector!!.bestCandidates()) { + for (invokeReceiverCandidate in candidateFactoriesAndCollectors.invokeReceiverCollector!!.bestCandidates()) { val symbol = invokeReceiverCandidate.symbol if (symbol !is FirCallableSymbol<*> && symbol !is FirRegularClassSymbol) continue @@ -584,7 +587,7 @@ class FirTowerResolverSession internal constructor( } val explicitReceiver = ExpressionReceiverValue(invokeReceiverExpression) - callResolutionContext.invokeOnGivenReceiverCandidateFactory = CandidateFactory(components, invokeFunctionInfo) + candidateFactoriesAndCollectors.invokeOnGivenReceiverCandidateFactory = CandidateFactory(components, invokeFunctionInfo) enqueueResolverTasksForInvoke( invokeFunctionInfo, explicitReceiver, diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/TowerLevelHandler.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/TowerLevelHandler.kt index c636ce532fa..9b56c89ef42 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/TowerLevelHandler.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/TowerLevelHandler.kt @@ -17,13 +17,13 @@ import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.resolve.calls.tasks.ExplicitReceiverKind import org.jetbrains.kotlin.types.AbstractTypeChecker -internal class CallResolutionContext( +internal class CandidateFactoriesAndCollectors( val candidateFactory: CandidateFactory, val resultCollector: CandidateCollector, - val invokeReceiverCandidateFactory: CandidateFactory?, - val invokeBuiltinExtensionReceiverCandidateFactory: CandidateFactory?, val stubReceiverCandidateFactory: CandidateFactory?, - val invokeReceiverCollector: CandidateCollector? + val invokeReceiverCandidateFactory: CandidateFactory?, + val invokeReceiverCollector: CandidateCollector?, + val invokeBuiltinExtensionReceiverCandidateFactory: CandidateFactory? ) { // TODO: Get rid of the property, storing state here looks like a hack internal lateinit var invokeOnGivenReceiverCandidateFactory: CandidateFactory @@ -40,12 +40,12 @@ internal class LevelHandler { info: CallInfo, explicitReceiverKind: ExplicitReceiverKind, group: TowerGroup, - callResolutionContext: CallResolutionContext, + candidateFactoriesAndCollectors: CandidateFactoriesAndCollectors, towerLevel: SessionBasedTowerLevel, invokeResolveMode: InvokeResolveMode?, enqueueResolverTasksForInvokeReceiverCandidates: EnqueueTasksForInvokeReceiverCandidates ): ProcessorAction { - val resultCollector = callResolutionContext.resultCollector + val resultCollector = candidateFactoriesAndCollectors.resultCollector val processor = TowerScopeLevelProcessor( info.explicitReceiver, @@ -53,9 +53,9 @@ internal class LevelHandler { resultCollector, // TODO: performance? if (invokeResolveMode == InvokeResolveMode.IMPLICIT_CALL_ON_GIVEN_RECEIVER) - callResolutionContext.invokeOnGivenReceiverCandidateFactory + candidateFactoriesAndCollectors.invokeOnGivenReceiverCandidateFactory else - callResolutionContext.candidateFactory, + candidateFactoriesAndCollectors.candidateFactory, group ) when (info.callKind) { @@ -83,16 +83,16 @@ internal class LevelHandler { val invokeReceiverProcessor = TowerScopeLevelProcessor( info.explicitReceiver, explicitReceiverKind, - callResolutionContext.invokeReceiverCollector!!, - if (invokeBuiltinExtensionMode) callResolutionContext.invokeBuiltinExtensionReceiverCandidateFactory!! - else callResolutionContext.invokeReceiverCandidateFactory!!, + candidateFactoriesAndCollectors.invokeReceiverCollector!!, + if (invokeBuiltinExtensionMode) candidateFactoriesAndCollectors.invokeBuiltinExtensionReceiverCandidateFactory!! + else candidateFactoriesAndCollectors.invokeReceiverCandidateFactory!!, group ) - callResolutionContext.invokeReceiverCollector.newDataSet() + candidateFactoriesAndCollectors.invokeReceiverCollector.newDataSet() towerLevel.processProperties(info.name, invokeReceiverProcessor) towerLevel.processObjectsAsVariables(info.name, invokeReceiverProcessor) - if (callResolutionContext.invokeReceiverCollector.isSuccess()) { + if (candidateFactoriesAndCollectors.invokeReceiverCollector.isSuccess()) { enqueueResolverTasksForInvokeReceiverCandidates() } } @@ -108,7 +108,7 @@ internal class LevelHandler { ExplicitReceiverKind.EXTENSION_RECEIVER }, resultCollector, - callResolutionContext.stubReceiverCandidateFactory!!, group + candidateFactoriesAndCollectors.stubReceiverCandidateFactory!!, group ) val towerLevelWithStubReceiver = towerLevel.replaceReceiverValue(stubReceiverValue) towerLevelWithStubReceiver.processFunctionsAndProperties(info.name, stubProcessor)