From 0708f574fcc1c25459019d1242d7cda186d4090c Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Tue, 29 Oct 2019 12:55:37 +0300 Subject: [PATCH] FIR: simplify companion scope building for implicit dispatch receiver --- .../kotlin/fir/resolve/calls/FirReceivers.kt | 17 +++-------------- .../FirDeclarationsResolveTransformer.kt | 2 +- 2 files changed, 4 insertions(+), 15 deletions(-) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/FirReceivers.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/FirReceivers.kt index 59c3163686e..65c59300a03 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/FirReceivers.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/FirReceivers.kt @@ -8,15 +8,11 @@ package org.jetbrains.kotlin.fir.resolve.calls import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.FirRegularClass import org.jetbrains.kotlin.fir.declarations.FirTypeParametersOwner -import org.jetbrains.kotlin.fir.declarations.classId import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.impl.FirThisReceiverExpressionImpl import org.jetbrains.kotlin.fir.references.impl.FirImplicitThisReference import org.jetbrains.kotlin.fir.renderWithType -import org.jetbrains.kotlin.fir.resolve.FirSymbolProvider -import org.jetbrains.kotlin.fir.resolve.ScopeSession -import org.jetbrains.kotlin.fir.resolve.buildDefaultUseSiteMemberScope -import org.jetbrains.kotlin.fir.resolve.scope +import org.jetbrains.kotlin.fir.resolve.* import org.jetbrains.kotlin.fir.scopes.FirScope import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol @@ -90,18 +86,11 @@ abstract class ImplicitReceiverValue>( class ImplicitDispatchReceiverValue( boundSymbol: FirClassSymbol<*>, type: ConeKotlinType, - symbolProvider: FirSymbolProvider, useSiteSession: FirSession, scopeSession: ScopeSession ) : ImplicitReceiverValue>(boundSymbol, type, useSiteSession, scopeSession) { - val implicitCompanionScope: FirScope? = (boundSymbol.fir as? FirRegularClass)?.companionObject?.let { companionObject -> - val companionId = companionObject.classId - if (companionId.isLocal) { - companionObject.buildDefaultUseSiteMemberScope(useSiteSession, scopeSession) - } else { - symbolProvider.getClassUseSiteMemberScope(companionId, useSiteSession, scopeSession) - } - } + val implicitCompanionScope: FirScope? = + (boundSymbol.fir as? FirRegularClass)?.companionObject?.buildUseSiteMemberScope(useSiteSession, scopeSession) } class ImplicitExtensionReceiverValue( diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirDeclarationsResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirDeclarationsResolveTransformer.kt index c09e1927ea0..4d9c09627d2 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirDeclarationsResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirDeclarationsResolveTransformer.kt @@ -355,7 +355,7 @@ class FirDeclarationsResolveTransformer(transformer: FirBodyResolveTransformer) ): T { val implicitReceiverValue = when (owner) { is FirClass<*> -> { - ImplicitDispatchReceiverValue(owner.symbol, type, symbolProvider, session, scopeSession) + ImplicitDispatchReceiverValue(owner.symbol, type, session, scopeSession) } is FirFunction<*> -> { ImplicitExtensionReceiverValue(owner.symbol, type, session, scopeSession)