FIR: Inline constructor parameter at FirTowerResolverSession
This commit is contained in:
@@ -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,
|
||||||
)
|
)
|
||||||
|
|||||||
+2
-4
@@ -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()
|
||||||
|
|||||||
+2
-3
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user