From 67c7b5ca0a844c393a72a4855cb57d829b857682 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Mon, 7 Dec 2020 13:48:59 +0300 Subject: [PATCH] Optimize/simplify FirAbstractImportingScope.getStaticsScope --- .../scopes/impl/FirAbstractImportingScope.kt | 23 ++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirAbstractImportingScope.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirAbstractImportingScope.kt index 23ddb2458b9..525e5c16987 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirAbstractImportingScope.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirAbstractImportingScope.kt @@ -26,24 +26,32 @@ abstract class FirAbstractImportingScope( lookupInFir: Boolean ) : FirAbstractProviderBasedScope(session, lookupInFir) { - // TODO: Rewrite somehow? - fun getStaticsScope(classId: ClassId): FirScope? { - val symbol = provider.getClassLikeSymbolByFqName(classId) ?: return null + private fun getStaticsScope(symbol: FirClassLikeSymbol<*>): FirScope? { if (symbol is FirTypeAliasSymbol) { val expansionSymbol = symbol.fir.expandedConeType?.lookupTag?.toSymbol(session) if (expansionSymbol != null) { - return getStaticsScope(expansionSymbol.classId) + return getStaticsScope(expansionSymbol) } } else { val firClass = (symbol as FirClassSymbol<*>).fir - return if (firClass.classKind == ClassKind.OBJECT) - FirObjectImportedCallableScope(classId, firClass.unsubstitutedScope(session, scopeSession, withForcedTypeCalculator = false)) - else + return if (firClass.classKind == ClassKind.OBJECT) { + FirObjectImportedCallableScope( + symbol.classId, + firClass.unsubstitutedScope(session, scopeSession, withForcedTypeCalculator = false) + ) + } else { firClass.scopeProvider.getStaticScope(firClass, session, scopeSession) + } } return null + + } + + fun getStaticsScope(classId: ClassId): FirScope? { + val symbol = provider.getClassLikeSymbolByFqName(classId) ?: return null + return getStaticsScope(symbol) } protected fun > processCallables( @@ -79,7 +87,6 @@ abstract class FirAbstractImportingScope( processor(symbol) } } - } abstract fun > processCallables(