diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirCallResolver.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirCallResolver.kt index 1ced7a74fdc..e8dc9f5a174 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirCallResolver.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirCallResolver.kt @@ -125,7 +125,6 @@ class FirCallResolver( ) towerResolver.reset() val result = towerResolver.runResolver( - implicitReceiverStack.receiversAsReversed(), info, ) val bestCandidates = result.bestCandidates() @@ -229,7 +228,6 @@ class FirCallResolver( // No reset here! val localCollector = CandidateCollector(this, resolutionStageRunner) val result = towerResolver.runResolver( - implicitReceiverStack.receiversAsReversed(), info, collector = localCollector, manager = TowerResolveManager(localCollector), @@ -285,7 +283,6 @@ class FirCallResolver( ) towerResolver.reset() val result = towerResolver.runResolverForDelegatingConstructor( - implicitReceiverStack.receiversAsReversed(), callInfo, constructorClassSymbol, ) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/tower/FirTowerResolver.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/tower/FirTowerResolver.kt index e732a02715c..353a548f880 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/tower/FirTowerResolver.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/tower/FirTowerResolver.kt @@ -17,14 +17,13 @@ class FirTowerResolver( private val manager = TowerResolveManager(collector) fun runResolver( - implicitReceiverValues: List>, info: CallInfo, collector: CandidateCollector = this.collector, manager: TowerResolveManager = this.manager ): CandidateCollector { val candidateFactoriesAndCollectors = buildCandidateFactoriesAndCollectors(info, collector) - val towerResolverSession = FirTowerResolverSession(components, implicitReceiverValues, manager, candidateFactoriesAndCollectors) + val towerResolverSession = FirTowerResolverSession(components, manager, candidateFactoriesAndCollectors) towerResolverSession.runResolution(info) manager.runTasks() @@ -32,13 +31,12 @@ class FirTowerResolver( } fun runResolverForDelegatingConstructor( - implicitReceiverValues: List>, info: CallInfo, constructorClassSymbol: FirClassSymbol<*>, ): CandidateCollector { val candidateFactoriesAndCollectors = buildCandidateFactoriesAndCollectors(info, collector) - val towerResolverSession = FirTowerResolverSession(components, implicitReceiverValues, manager, candidateFactoriesAndCollectors) + val towerResolverSession = FirTowerResolverSession(components, manager, candidateFactoriesAndCollectors) towerResolverSession.runResolutionForDelegatingConstructor(info, constructorClassSymbol) manager.runTasks() diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/tower/FirTowerResolverSession.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/tower/FirTowerResolverSession.kt index 984e0f50077..77b08ef6d5e 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/tower/FirTowerResolverSession.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/tower/FirTowerResolverSession.kt @@ -37,8 +37,7 @@ import org.jetbrains.kotlin.resolve.descriptorUtil.HIDES_MEMBERS_NAME_LIST import org.jetbrains.kotlin.util.OperatorNameConventions class FirTowerResolverSession internal constructor( - val components: BodyResolveComponents, - implicitReceiverValues: List>, + private val components: BodyResolveComponents, private val manager: TowerResolveManager, private val candidateFactoriesAndCollectors: CandidateFactoriesAndCollectors, ) { @@ -54,7 +53,7 @@ class FirTowerResolverSession internal constructor( private val implicitReceiversUsableAsValues: List init { - val (implicitReceivers, implicitReceiversUsableAsValues) = prepareImplicitReceivers(implicitReceiverValues) + val (implicitReceivers, implicitReceiversUsableAsValues) = prepareImplicitReceivers(components.implicitReceiverStack.receiversAsReversed()) this.implicitReceivers = implicitReceivers this.implicitReceiversUsableAsValues = implicitReceiversUsableAsValues }