From c343e5c9b7bc2523ad40c254b1a684c9f8a66952 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Mon, 13 Jan 2020 10:24:39 +0300 Subject: [PATCH] [FIR] Refactoring: extract FirTowerResolver.towerDataConsumer() --- .../fir/resolve/calls/FirTowerResolver.kt | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 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 dce8a6625da..de5ed64b7a1 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 @@ -201,12 +201,8 @@ class FirTowerResolver( private lateinit var towerDataConsumer: TowerDataConsumer private lateinit var implicitReceiverValues: List> - fun runResolver( - implicitReceiverValues: List>, info: CallInfo, - collector: CandidateCollector = this.collector - ): CandidateCollector { - this.implicitReceiverValues = implicitReceiverValues - towerDataConsumer = when (info.callKind) { + private fun towerDataConsumer(info: CallInfo, collector: CandidateCollector): TowerDataConsumer { + return when (info.callKind) { CallKind.VariableAccess -> { createVariableAndObjectConsumer(session, info.name, info, components, collector) } @@ -230,6 +226,15 @@ class FirTowerResolver( } else -> throw AssertionError("Unsupported call kind in tower resolver: ${info.callKind}") } + } + + fun runResolver( + implicitReceiverValues: List>, info: CallInfo, + collector: CandidateCollector = this.collector + ): CandidateCollector { + this.implicitReceiverValues = implicitReceiverValues + towerDataConsumer = towerDataConsumer(info, collector) + val shouldProcessExtensionsBeforeMembers = info.callKind == CallKind.Function && info.name in HIDES_MEMBERS_NAME_LIST val shouldProcessExplicitReceiverScopeOnly =