diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/references/FirReferenceResolveHelper.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/references/FirReferenceResolveHelper.kt index e2a228a850f..804675f6590 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/references/FirReferenceResolveHelper.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/references/FirReferenceResolveHelper.kt @@ -31,6 +31,7 @@ import org.jetbrains.kotlin.fir.resolve.ScopeSession import org.jetbrains.kotlin.fir.resolve.dfa.unwrapSmartcastExpression import org.jetbrains.kotlin.fir.resolve.diagnostics.ConeUnmatchedTypeArgumentsError import org.jetbrains.kotlin.fir.resolve.scope +import org.jetbrains.kotlin.fir.resolve.providers.toSymbol import org.jetbrains.kotlin.fir.resolve.toSymbol import org.jetbrains.kotlin.fir.resolve.transformers.FirImportResolveTransformer import org.jetbrains.kotlin.fir.scopes.FakeOverrideTypeCalculator @@ -71,7 +72,7 @@ internal object FirReferenceResolveHelper { symbolBuilder: KtSymbolByFirBuilder, calleeReference: FirReference? = null, ): KtSymbol? { - val classLikeDeclaration = this.toLookupTag().toSymbol(session)?.fir + val classLikeDeclaration = this.toSymbol(session)?.fir if (classLikeDeclaration is FirRegularClass) { if (calleeReference is FirResolvedNamedReference) { val callee = calleeReference.resolvedSymbol.fir as? FirCallableDeclaration diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrClassifierStorage.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrClassifierStorage.kt index df72b9b1ac1..7d76058b56b 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrClassifierStorage.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrClassifierStorage.kt @@ -15,6 +15,7 @@ import org.jetbrains.kotlin.fir.lazy.Fir2IrLazyClass import org.jetbrains.kotlin.fir.resolve.getSymbolByLookupTag import org.jetbrains.kotlin.fir.resolve.providers.firProvider import org.jetbrains.kotlin.fir.resolve.providers.symbolProvider +import org.jetbrains.kotlin.fir.resolve.providers.toSymbol import org.jetbrains.kotlin.fir.resolve.toSymbol import org.jetbrains.kotlin.fir.symbols.ConeClassLikeLookupTag import org.jetbrains.kotlin.fir.symbols.Fir2IrClassSymbol @@ -70,7 +71,7 @@ class Fir2IrClassifierStorage( fun preCacheBuiltinClasses() { for ((classId, irBuiltinSymbol) in typeConverter.classIdToSymbolMap) { - val firClass = classId.toLookupTag().toSymbol(session)!!.fir as FirRegularClass + val firClass = classId.toSymbol(session)!!.fir as FirRegularClass val irClass = irBuiltinSymbol.owner classCache[firClass] = irClass processClassHeader(firClass, irClass) diff --git a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/providers/FirSymbolProvider.kt b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/providers/FirSymbolProvider.kt index 7e982483181..d2ddad49197 100644 --- a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/providers/FirSymbolProvider.kt +++ b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/providers/FirSymbolProvider.kt @@ -116,6 +116,10 @@ fun FirSymbolProvider.getRegularClassSymbolByClassId(classId: ClassId): FirRegul return getClassLikeSymbolByClassId(classId) as? FirRegularClassSymbol } +fun ClassId.toSymbol(session: FirSession): FirClassifierSymbol<*>? { + return session.symbolProvider.getClassLikeSymbolByClassId(this) +} + val FirSession.symbolProvider: FirSymbolProvider by FirSession.sessionComponentAccessor() const val DEPENDENCIES_SYMBOL_PROVIDER_QUALIFIED_KEY: String = "org.jetbrains.kotlin.fir.resolve.providers.FirDependenciesSymbolProvider"