diff --git a/compiler/resolution/src/org/jetbrains/kotlin/resolve/calls/tower/ScopeTowerProcessors.kt b/compiler/resolution/src/org/jetbrains/kotlin/resolve/calls/tower/ScopeTowerProcessors.kt index 28426206855..e2c32005108 100644 --- a/compiler/resolution/src/org/jetbrains/kotlin/resolve/calls/tower/ScopeTowerProcessors.kt +++ b/compiler/resolution/src/org/jetbrains/kotlin/resolve/calls/tower/ScopeTowerProcessors.kt @@ -49,11 +49,14 @@ internal abstract class AbstractSimpleScopeTowerProcessor> = listOfNotNull(simpleProcess(data).check { it.isNotEmpty() }) } +private typealias CandidatesCollector = + ScopeTowerLevel.(extensionReceiver: ReceiverValueWithSmartCastInfo?) -> Collection> + internal class ExplicitReceiverScopeTowerProcessor>( val scopeTower: ImplicitScopeTower, context: CandidateFactory, val explicitReceiver: ReceiverValueWithSmartCastInfo, - val collectCandidates: ScopeTowerLevel.(extensionReceiver: ReceiverValueWithSmartCastInfo?) -> Collection> + val collectCandidates: CandidatesCollector ): AbstractSimpleScopeTowerProcessor(context) { override fun simpleProcess(data: TowerData): Collection { return when (data) { @@ -79,7 +82,7 @@ private class QualifierScopeTowerProcessor, val qualifier: QualifierReceiver, - val collectCandidates: ScopeTowerLevel.(extensionReceiver: ReceiverValueWithSmartCastInfo?) -> Collection> + val collectCandidates: CandidatesCollector ): AbstractSimpleScopeTowerProcessor(context) { override fun simpleProcess(data: TowerData): Collection { if (data != TowerData.Empty) return emptyList() @@ -93,7 +96,7 @@ private class QualifierScopeTowerProcessor>( context: CandidateFactory, - val collectCandidates: ScopeTowerLevel.(extensionReceiver: ReceiverValueWithSmartCastInfo?) -> Collection> + val collectCandidates: CandidatesCollector ) : AbstractSimpleScopeTowerProcessor(context) { override fun simpleProcess(data: TowerData): Collection = when(data) { @@ -122,7 +125,7 @@ private fun > createSimpleProcessor( context: CandidateFactory, explicitReceiver: DetailedReceiver?, classValueReceiver: Boolean, - collectCandidates: ScopeTowerLevel.(extensionReceiver: ReceiverValueWithSmartCastInfo?) -> Collection> + collectCandidates: CandidatesCollector ) : ScopeTowerProcessor { if (explicitReceiver is ReceiverValueWithSmartCastInfo) { return ExplicitReceiverScopeTowerProcessor(scopeTower, context, explicitReceiver, collectCandidates)