FIR: rename CallResolver to FirTowerResolver

This commit is contained in:
Mikhail Glukhikh
2019-10-04 19:02:52 +03:00
parent 16de3257d5
commit 6d8aa69878
4 changed files with 13 additions and 13 deletions
@@ -60,14 +60,14 @@ class FirCallResolver(
file, file,
transformer.container transformer.container
) { it.resultType } ) { it.resultType }
val resolver = CallResolver( val towerResolver = FirTowerResolver(
returnTypeCalculator, this, resolutionStageRunner, returnTypeCalculator, this, resolutionStageRunner,
topLevelScopes = topLevelScopes.asReversed(), topLevelScopes = topLevelScopes.asReversed(),
localScopes = localScopes.asReversed() localScopes = localScopes.asReversed()
) )
val consumer = createFunctionConsumer(session, name, info, this, resolver.collector, resolver) val consumer = createFunctionConsumer(session, name, info, this, towerResolver.collector, towerResolver)
val result = resolver.runTowerResolver(consumer, implicitReceiverStack.receiversAsReversed()) val result = towerResolver.runResolver(consumer, implicitReceiverStack.receiversAsReversed())
val bestCandidates = result.bestCandidates() val bestCandidates = result.bestCandidates()
val reducedCandidates = if (result.currentApplicability < CandidateApplicability.SYNTHETIC_RESOLVED) { val reducedCandidates = if (result.currentApplicability < CandidateApplicability.SYNTHETIC_RESOLVED) {
bestCandidates.toSet() bestCandidates.toSet()
@@ -154,7 +154,7 @@ class FirCallResolver(
file, file,
transformer.container transformer.container
) { it.resultType } ) { it.resultType }
val resolver = CallResolver( val towerResolver = FirTowerResolver(
returnTypeCalculator, this, resolutionStageRunner, returnTypeCalculator, this, resolutionStageRunner,
topLevelScopes = topLevelScopes.asReversed(), topLevelScopes = topLevelScopes.asReversed(),
localScopes = localScopes.asReversed() localScopes = localScopes.asReversed()
@@ -164,9 +164,9 @@ class FirCallResolver(
session, session,
callee.name, callee.name,
info, this, info, this,
resolver.collector towerResolver.collector
) )
val result = resolver.runTowerResolver(consumer, implicitReceiverStack.receiversAsReversed()) val result = towerResolver.runResolver(consumer, implicitReceiverStack.receiversAsReversed())
val candidates = result.bestCandidates() val candidates = result.bestCandidates()
val nameReference = createResolvedNamedReference( val nameReference = createResolvedNamedReference(
@@ -69,7 +69,7 @@ open class CandidateCollector(
// Collects properties that potentially could be invoke receivers, like 'propertyName()', // Collects properties that potentially could be invoke receivers, like 'propertyName()',
// and initiates further invoke resolution by adding property-bound invoke consumers // and initiates further invoke resolution by adding property-bound invoke consumers
class InvokeReceiverCandidateCollector( class InvokeReceiverCandidateCollector(
val callResolver: CallResolver, val towerResolver: FirTowerResolver,
val invokeCallInfo: CallInfo, val invokeCallInfo: CallInfo,
components: BodyResolveComponents, components: BodyResolveComponents,
val invokeConsumer: AccumulatingTowerDataConsumer, val invokeConsumer: AccumulatingTowerDataConsumer,
@@ -91,7 +91,7 @@ class InvokeReceiverCandidateCollector(
) )
dispatchReceiver = candidate.dispatchReceiverExpression() dispatchReceiver = candidate.dispatchReceiverExpression()
extensionReceiver = candidate.extensionReceiverExpression() extensionReceiver = candidate.extensionReceiverExpression()
typeRef = callResolver.typeCalculator.tryCalculateReturnType(candidate.symbol.firUnsafe()) typeRef = towerResolver.typeCalculator.tryCalculateReturnType(candidate.symbol.firUnsafe())
}, },
invokeCallInfo.arguments, invokeCallInfo.arguments,
invokeCallInfo.isSafeCall, invokeCallInfo.isSafeCall,
@@ -105,7 +105,7 @@ class InvokeReceiverCandidateCollector(
invokeConsumer.addConsumer( invokeConsumer.addConsumer(
createSimpleFunctionConsumer( createSimpleFunctionConsumer(
session, OperatorNameConventions.INVOKE, session, OperatorNameConventions.INVOKE,
boundInvokeCallInfo, callResolver.components, callResolver.collector boundInvokeCallInfo, towerResolver.components, towerResolver.collector
) )
) )
} }
@@ -61,7 +61,7 @@ fun createFunctionConsumer(
callInfo: CallInfo, callInfo: CallInfo,
bodyResolveComponents: BodyResolveComponents, bodyResolveComponents: BodyResolveComponents,
resultCollector: CandidateCollector, resultCollector: CandidateCollector,
callResolver: CallResolver towerResolver: FirTowerResolver
): TowerDataConsumer { ): TowerDataConsumer {
val varCallInfo = CallInfo( val varCallInfo = CallInfo(
CallKind.VariableAccess, CallKind.VariableAccess,
@@ -92,7 +92,7 @@ fun createFunctionConsumer(
varCallInfo, varCallInfo,
bodyResolveComponents, bodyResolveComponents,
InvokeReceiverCandidateCollector( InvokeReceiverCandidateCollector(
callResolver, towerResolver,
invokeCallInfo = callInfo, invokeCallInfo = callInfo,
components = bodyResolveComponents, components = bodyResolveComponents,
invokeConsumer = this, invokeConsumer = this,
@@ -19,7 +19,7 @@ enum class TowerDataKind {
TOWER_LEVEL TOWER_LEVEL
} }
class CallResolver( class FirTowerResolver(
val typeCalculator: ReturnTypeCalculator, val typeCalculator: ReturnTypeCalculator,
val components: BodyResolveComponents, val components: BodyResolveComponents,
private val resolutionStageRunner: ResolutionStageRunner, private val resolutionStageRunner: ResolutionStageRunner,
@@ -141,7 +141,7 @@ class CallResolver(
private lateinit var towerDataConsumer: TowerDataConsumer private lateinit var towerDataConsumer: TowerDataConsumer
private lateinit var implicitReceiverValues: List<ImplicitReceiverValue<*>> private lateinit var implicitReceiverValues: List<ImplicitReceiverValue<*>>
fun runTowerResolver(consumer: TowerDataConsumer, implicitReceiverValues: List<ImplicitReceiverValue<*>>): CandidateCollector { fun runResolver(consumer: TowerDataConsumer, implicitReceiverValues: List<ImplicitReceiverValue<*>>): CandidateCollector {
this.implicitReceiverValues = implicitReceiverValues this.implicitReceiverValues = implicitReceiverValues
towerDataConsumer = consumer towerDataConsumer = consumer