FIR: Cleanup MemberScopeTowerLevel
This commit is contained in:
@@ -6,7 +6,10 @@
|
|||||||
package org.jetbrains.kotlin.fir.resolve.calls
|
package org.jetbrains.kotlin.fir.resolve.calls
|
||||||
|
|
||||||
import org.jetbrains.kotlin.fir.FirSession
|
import org.jetbrains.kotlin.fir.FirSession
|
||||||
import org.jetbrains.kotlin.fir.declarations.*
|
import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration
|
||||||
|
import org.jetbrains.kotlin.fir.declarations.FirConstructor
|
||||||
|
import org.jetbrains.kotlin.fir.declarations.isInner
|
||||||
|
import org.jetbrains.kotlin.fir.declarations.isStatic
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||||
import org.jetbrains.kotlin.fir.resolve.BodyResolveComponents
|
import org.jetbrains.kotlin.fir.resolve.BodyResolveComponents
|
||||||
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
||||||
@@ -65,9 +68,9 @@ class MemberScopeTowerLevel(
|
|||||||
session: FirSession,
|
session: FirSession,
|
||||||
private val bodyResolveComponents: BodyResolveComponents,
|
private val bodyResolveComponents: BodyResolveComponents,
|
||||||
val dispatchReceiver: ReceiverValue,
|
val dispatchReceiver: ReceiverValue,
|
||||||
val extensionReceiver: ReceiverValue? = null,
|
private val extensionReceiver: ReceiverValue? = null,
|
||||||
val implicitExtensionInvokeMode: Boolean = false,
|
private val implicitExtensionInvokeMode: Boolean = false,
|
||||||
val scopeSession: ScopeSession
|
private val scopeSession: ScopeSession
|
||||||
) : SessionBasedTowerLevel(session) {
|
) : SessionBasedTowerLevel(session) {
|
||||||
private fun <T : AbstractFirBasedSymbol<*>> processMembers(
|
private fun <T : AbstractFirBasedSymbol<*>> processMembers(
|
||||||
output: TowerScopeLevel.TowerScopeLevelProcessor<T>,
|
output: TowerScopeLevel.TowerScopeLevelProcessor<T>,
|
||||||
@@ -85,18 +88,18 @@ class MemberScopeTowerLevel(
|
|||||||
return@processScopeMembers
|
return@processScopeMembers
|
||||||
}
|
}
|
||||||
val dispatchReceiverValue = NotNullableReceiverValue(dispatchReceiver)
|
val dispatchReceiverValue = NotNullableReceiverValue(dispatchReceiver)
|
||||||
|
|
||||||
|
output.consumeCandidate(
|
||||||
|
candidate, dispatchReceiverValue,
|
||||||
|
implicitExtensionReceiverValue = extensionReceiver as? ImplicitReceiverValue<*>
|
||||||
|
)
|
||||||
|
|
||||||
if (implicitExtensionInvokeMode) {
|
if (implicitExtensionInvokeMode) {
|
||||||
output.consumeCandidate(
|
|
||||||
candidate, dispatchReceiverValue,
|
|
||||||
implicitExtensionReceiverValue = extensionReceiver as? ImplicitReceiverValue<*>
|
|
||||||
)
|
|
||||||
output.consumeCandidate(
|
output.consumeCandidate(
|
||||||
candidate, dispatchReceiverValue,
|
candidate, dispatchReceiverValue,
|
||||||
implicitExtensionReceiverValue = null,
|
implicitExtensionReceiverValue = null,
|
||||||
builtInExtensionFunctionReceiverValue = this.extensionReceiver
|
builtInExtensionFunctionReceiverValue = this.extensionReceiver
|
||||||
)
|
)
|
||||||
} else {
|
|
||||||
output.consumeCandidate(candidate, dispatchReceiverValue, extensionReceiver as? ImplicitReceiverValue<*>)
|
|
||||||
}
|
}
|
||||||
} else if (candidate is FirClassLikeSymbol<*>) {
|
} else if (candidate is FirClassLikeSymbol<*>) {
|
||||||
output.consumeCandidate(candidate, null, extensionReceiver as? ImplicitReceiverValue<*>)
|
output.consumeCandidate(candidate, null, extensionReceiver as? ImplicitReceiverValue<*>)
|
||||||
|
|||||||
Reference in New Issue
Block a user