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(