FIR: Inline constructor parameter at FirTowerResolverSession

This commit is contained in:
Denis Zharkov
2020-04-27 14:17:10 +03:00
parent 75c4239504
commit 8363671cab
3 changed files with 4 additions and 10 deletions
@@ -125,7 +125,6 @@ class FirCallResolver(
) )
towerResolver.reset() towerResolver.reset()
val result = towerResolver.runResolver( val result = towerResolver.runResolver(
implicitReceiverStack.receiversAsReversed(),
info, info,
) )
val bestCandidates = result.bestCandidates() val bestCandidates = result.bestCandidates()
@@ -229,7 +228,6 @@ class FirCallResolver(
// No reset here! // No reset here!
val localCollector = CandidateCollector(this, resolutionStageRunner) val localCollector = CandidateCollector(this, resolutionStageRunner)
val result = towerResolver.runResolver( val result = towerResolver.runResolver(
implicitReceiverStack.receiversAsReversed(),
info, info,
collector = localCollector, collector = localCollector,
manager = TowerResolveManager(localCollector), manager = TowerResolveManager(localCollector),
@@ -285,7 +283,6 @@ class FirCallResolver(
) )
towerResolver.reset() towerResolver.reset()
val result = towerResolver.runResolverForDelegatingConstructor( val result = towerResolver.runResolverForDelegatingConstructor(
implicitReceiverStack.receiversAsReversed(),
callInfo, callInfo,
constructorClassSymbol, constructorClassSymbol,
) )
@@ -17,14 +17,13 @@ class FirTowerResolver(
private val manager = TowerResolveManager(collector) private val manager = TowerResolveManager(collector)
fun runResolver( fun runResolver(
implicitReceiverValues: List<ImplicitReceiverValue<*>>,
info: CallInfo, info: CallInfo,
collector: CandidateCollector = this.collector, collector: CandidateCollector = this.collector,
manager: TowerResolveManager = this.manager manager: TowerResolveManager = this.manager
): CandidateCollector { ): CandidateCollector {
val candidateFactoriesAndCollectors = buildCandidateFactoriesAndCollectors(info, collector) val candidateFactoriesAndCollectors = buildCandidateFactoriesAndCollectors(info, collector)
val towerResolverSession = FirTowerResolverSession(components, implicitReceiverValues, manager, candidateFactoriesAndCollectors) val towerResolverSession = FirTowerResolverSession(components, manager, candidateFactoriesAndCollectors)
towerResolverSession.runResolution(info) towerResolverSession.runResolution(info)
manager.runTasks() manager.runTasks()
@@ -32,13 +31,12 @@ class FirTowerResolver(
} }
fun runResolverForDelegatingConstructor( fun runResolverForDelegatingConstructor(
implicitReceiverValues: List<ImplicitReceiverValue<*>>,
info: CallInfo, info: CallInfo,
constructorClassSymbol: FirClassSymbol<*>, constructorClassSymbol: FirClassSymbol<*>,
): CandidateCollector { ): CandidateCollector {
val candidateFactoriesAndCollectors = buildCandidateFactoriesAndCollectors(info, collector) val candidateFactoriesAndCollectors = buildCandidateFactoriesAndCollectors(info, collector)
val towerResolverSession = FirTowerResolverSession(components, implicitReceiverValues, manager, candidateFactoriesAndCollectors) val towerResolverSession = FirTowerResolverSession(components, manager, candidateFactoriesAndCollectors)
towerResolverSession.runResolutionForDelegatingConstructor(info, constructorClassSymbol) towerResolverSession.runResolutionForDelegatingConstructor(info, constructorClassSymbol)
manager.runTasks() manager.runTasks()
@@ -37,8 +37,7 @@ import org.jetbrains.kotlin.resolve.descriptorUtil.HIDES_MEMBERS_NAME_LIST
import org.jetbrains.kotlin.util.OperatorNameConventions import org.jetbrains.kotlin.util.OperatorNameConventions
class FirTowerResolverSession internal constructor( class FirTowerResolverSession internal constructor(
val components: BodyResolveComponents, private val components: BodyResolveComponents,
implicitReceiverValues: List<ImplicitReceiverValue<*>>,
private val manager: TowerResolveManager, private val manager: TowerResolveManager,
private val candidateFactoriesAndCollectors: CandidateFactoriesAndCollectors, private val candidateFactoriesAndCollectors: CandidateFactoriesAndCollectors,
) { ) {
@@ -54,7 +53,7 @@ class FirTowerResolverSession internal constructor(
private val implicitReceiversUsableAsValues: List<ImplicitReceiver> private val implicitReceiversUsableAsValues: List<ImplicitReceiver>
init { init {
val (implicitReceivers, implicitReceiversUsableAsValues) = prepareImplicitReceivers(implicitReceiverValues) val (implicitReceivers, implicitReceiversUsableAsValues) = prepareImplicitReceivers(components.implicitReceiverStack.receiversAsReversed())
this.implicitReceivers = implicitReceivers this.implicitReceivers = implicitReceivers
this.implicitReceiversUsableAsValues = implicitReceiversUsableAsValues this.implicitReceiversUsableAsValues = implicitReceiversUsableAsValues
} }