diff --git a/compiler/fir/dump/src/org/jetbrains/kotlin/fir/dump/HtmlFirDump.kt b/compiler/fir/dump/src/org/jetbrains/kotlin/fir/dump/HtmlFirDump.kt index 7cb4fe69058..5f341009079 100644 --- a/compiler/fir/dump/src/org/jetbrains/kotlin/fir/dump/HtmlFirDump.kt +++ b/compiler/fir/dump/src/org/jetbrains/kotlin/fir/dump/HtmlFirDump.kt @@ -20,10 +20,7 @@ import org.jetbrains.kotlin.fir.expressions.impl.FirElseIfTrueCondition import org.jetbrains.kotlin.fir.expressions.impl.FirUnitExpression import org.jetbrains.kotlin.fir.references.FirErrorNamedReference import org.jetbrains.kotlin.fir.references.FirSimpleNamedReference -import org.jetbrains.kotlin.fir.resolve.FirSymbolProvider -import org.jetbrains.kotlin.fir.resolve.directExpansionType -import org.jetbrains.kotlin.fir.resolve.toSymbol -import org.jetbrains.kotlin.fir.resolve.withNullability +import org.jetbrains.kotlin.fir.resolve.* import org.jetbrains.kotlin.fir.symbols.* import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirClassLikeSymbol @@ -1172,7 +1169,7 @@ class HtmlFirDump internal constructor(private var linkResolver: FirLinkResolver private fun FlowContent.generate(resolvedQualifier: FirResolvedQualifier) { resolved { - val symbolProvider = session.service() + val symbolProvider = session.firSymbolProvider val classId = resolvedQualifier.classId if (classId != null) { symbolRef(symbolProvider.getClassLikeSymbolByFqName(classId)) { diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt index c7e816bfd18..9f3634898d0 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt @@ -19,6 +19,7 @@ import org.jetbrains.kotlin.fir.expressions.FirVariable import org.jetbrains.kotlin.fir.render import org.jetbrains.kotlin.fir.resolve.FirProvider import org.jetbrains.kotlin.fir.resolve.FirSymbolProvider +import org.jetbrains.kotlin.fir.resolve.firSymbolProvider import org.jetbrains.kotlin.fir.resolve.getOrPut import org.jetbrains.kotlin.fir.service import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol @@ -43,7 +44,7 @@ class Fir2IrDeclarationStorage( private val irSymbolTable: SymbolTable, private val moduleDescriptor: FirModuleDescriptor ) { - private val firSymbolProvider = session.service() + private val firSymbolProvider = session.firSymbolProvider private val firProvider = session.service() diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt index 44dcfe9f5c5..93a84161e95 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt @@ -17,11 +17,8 @@ import org.jetbrains.kotlin.fir.expressions.impl.FirElseIfTrueCondition import org.jetbrains.kotlin.fir.expressions.impl.FirNoReceiverExpression import org.jetbrains.kotlin.fir.expressions.impl.FirUnitExpression import org.jetbrains.kotlin.fir.references.FirPropertyFromParameterCallableReference -import org.jetbrains.kotlin.fir.resolve.FirSymbolProvider -import org.jetbrains.kotlin.fir.resolve.ScopeSession -import org.jetbrains.kotlin.fir.resolve.buildUseSiteScope +import org.jetbrains.kotlin.fir.resolve.* import org.jetbrains.kotlin.fir.resolve.calls.SyntheticPropertySymbol -import org.jetbrains.kotlin.fir.resolve.toSymbol import org.jetbrains.kotlin.fir.scopes.ProcessorAction import org.jetbrains.kotlin.fir.scopes.impl.FirClassSubstitutionScope import org.jetbrains.kotlin.fir.symbols.impl.* @@ -335,7 +332,7 @@ class Fir2IrVisitor( if (ownerClassId == null) { lastClass } else { - val classLikeSymbol = session.service().getClassLikeSymbolByFqName(ownerClassId) + val classLikeSymbol = session.firSymbolProvider.getClassLikeSymbolByFqName(ownerClassId) if (classLikeSymbol !is FirClassSymbol) { lastClass } else { @@ -423,7 +420,7 @@ class Fir2IrVisitor( val constructedIrType = constructedTypeRef.toIrType(this@Fir2IrVisitor.session, declarationStorage) // TODO: find delegated constructor correctly val classId = constructedClassSymbol.classId - val provider = this@Fir2IrVisitor.session.service() + val provider = this@Fir2IrVisitor.session.firSymbolProvider var constructorSymbol: FirConstructorSymbol? = null provider.getClassUseSiteMemberScope(classId, this@Fir2IrVisitor.session, ScopeSession())!!.processFunctionsByName( classId.shortClassName diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaUtils.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaUtils.kt index dcf3349fddd..a93077150f5 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaUtils.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaUtils.kt @@ -22,6 +22,7 @@ import org.jetbrains.kotlin.fir.references.FirErrorNamedReference import org.jetbrains.kotlin.fir.references.FirResolvedCallableReferenceImpl import org.jetbrains.kotlin.fir.resolve.FirSymbolProvider import org.jetbrains.kotlin.fir.resolve.constructClassType +import org.jetbrains.kotlin.fir.resolve.firSymbolProvider import org.jetbrains.kotlin.fir.resolve.getClassDeclaredCallableSymbols import org.jetbrains.kotlin.fir.service import org.jetbrains.kotlin.fir.symbols.StandardClassIds @@ -247,7 +248,7 @@ private fun JavaAnnotationArgument.toFirExpression( val classId = this@toFirExpression.enumClassId val entryName = this@toFirExpression.entryName val calleeReference = if (classId != null && entryName != null) { - val callableSymbol = session.service().getClassDeclaredCallableSymbols( + val callableSymbol = session.firSymbolProvider.getClassDeclaredCallableSymbols( classId, entryName ).firstOrNull() callableSymbol?.let { diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/deserialization/KotlinDeserializedJvmSymbolsProvider.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/deserialization/KotlinDeserializedJvmSymbolsProvider.kt index c15da145e0f..9d6f7c3972a 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/deserialization/KotlinDeserializedJvmSymbolsProvider.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/deserialization/KotlinDeserializedJvmSymbolsProvider.kt @@ -210,7 +210,7 @@ class KotlinDeserializedJvmSymbolsProvider( val entryLookupTag = ConeClassLikeLookupTagImpl(entryClassId) val entryClassSymbol = entryLookupTag.toSymbol(this@KotlinDeserializedJvmSymbolsProvider.session) val entryCallableSymbol = - this@KotlinDeserializedJvmSymbolsProvider.session.service().getClassDeclaredCallableSymbols( + this@KotlinDeserializedJvmSymbolsProvider.session.firSymbolProvider.getClassDeclaredCallableSymbols( this@toEnumEntryReferenceExpression, name ).firstOrNull() diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirQualifiedNameResolver.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirQualifiedNameResolver.kt index cadc1e41872..8917df3440d 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirQualifiedNameResolver.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirQualifiedNameResolver.kt @@ -11,7 +11,7 @@ import org.jetbrains.kotlin.fir.expressions.FirStatement import org.jetbrains.kotlin.fir.expressions.impl.FirResolvedQualifierImpl import org.jetbrains.kotlin.fir.references.FirSimpleNamedReference import org.jetbrains.kotlin.fir.resolve.BodyResolveComponents -import org.jetbrains.kotlin.fir.resolve.FirSymbolProvider +import org.jetbrains.kotlin.fir.resolve.firSymbolProvider import org.jetbrains.kotlin.fir.resolve.transformers.PackageOrClass import org.jetbrains.kotlin.fir.resolve.transformers.resolveToPackageOrClass import org.jetbrains.kotlin.fir.resolve.transformers.resultType @@ -44,7 +44,7 @@ class FirQualifiedNameResolver(components: BodyResolveComponents) : BodyResolveC } fun tryResolveAsQualifier(): FirResolvedQualifier? { - val symbolProvider = session.service() + val symbolProvider = session.firSymbolProvider var qualifierParts = qualifierStack.asReversed().map { it.asString() } var resolved: PackageOrClass? do { diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/FirSymbolProvider.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/FirSymbolProvider.kt index 1a6f0f43ab4..325574fc1b2 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/FirSymbolProvider.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/FirSymbolProvider.kt @@ -62,7 +62,7 @@ abstract class FirSymbolProvider : FirSessionComponent { fun getSessionForClass(classId: ClassId): FirSession? = getClassLikeSymbolByFqName(classId)?.fir?.session companion object { - fun getInstance(session: FirSession) = session.service() + fun getInstance(session: FirSession) = session.firSymbolProvider } } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/ResolveUtils.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/ResolveUtils.kt index c9ceab5e1c1..4465b7e09a0 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/ResolveUtils.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/ResolveUtils.kt @@ -214,7 +214,7 @@ fun createFunctionalType( val receiverAndParameterTypes = listOfNotNull(receiverType) + parameters + listOf(rawReturnType) val functionalTypeId = StandardClassIds.byName("Function${receiverAndParameterTypes.size - 1}") - val functionalType = functionalTypeId(session.service()).constructType(receiverAndParameterTypes.toTypedArray(), isNullable = false) + val functionalType = functionalTypeId(session.firSymbolProvider).constructType(receiverAndParameterTypes.toTypedArray(), isNullable = false) return functionalType } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/SupertypeUtils.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/SupertypeUtils.kt index e6ed54efc56..c6402be74a8 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/SupertypeUtils.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/SupertypeUtils.kt @@ -54,7 +54,7 @@ val DECLARED = scopeSessionKey() data class SubstitutionScopeKey(val type: ConeClassLikeType) : ScopeSessionKey() {} fun FirRegularClass.buildUseSiteScope(useSiteSession: FirSession, builder: ScopeSession): FirScope? { - val symbolProvider = useSiteSession.service() + val symbolProvider = useSiteSession.firSymbolProvider return symbolProvider.getClassUseSiteMemberScope(this.classId, useSiteSession, builder) } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ConeInferenceContext.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ConeInferenceContext.kt index 05caf72aaea..ad2829099bb 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ConeInferenceContext.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ConeInferenceContext.kt @@ -5,13 +5,9 @@ package org.jetbrains.kotlin.fir.resolve.calls -import org.jetbrains.kotlin.fir.resolve.FirSymbolProvider -import org.jetbrains.kotlin.fir.resolve.constructType +import org.jetbrains.kotlin.fir.resolve.* import org.jetbrains.kotlin.fir.resolve.substitution.AbstractConeSubstitutor import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor -import org.jetbrains.kotlin.fir.resolve.withArguments -import org.jetbrains.kotlin.fir.resolve.withNullability -import org.jetbrains.kotlin.fir.service import org.jetbrains.kotlin.fir.symbols.StandardClassIds import org.jetbrains.kotlin.fir.symbols.impl.FirClassLikeSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirClassifierSymbol @@ -28,7 +24,7 @@ import org.jetbrains.kotlin.utils.addToStdlib.cast interface ConeInferenceContext : TypeSystemInferenceExtensionContext, ConeTypeContext { - val symbolProvider: FirSymbolProvider get() = session.service() + val symbolProvider: FirSymbolProvider get() = session.firSymbolProvider override val isErrorTypeAllowed: Boolean get() = false diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/CreateFreshTypeVariableSubstitutorStage.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/CreateFreshTypeVariableSubstitutorStage.kt index 8a989673eb2..34bfe15ecfc 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/CreateFreshTypeVariableSubstitutorStage.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/CreateFreshTypeVariableSubstitutorStage.kt @@ -8,9 +8,9 @@ package org.jetbrains.kotlin.fir.resolve.calls import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration import org.jetbrains.kotlin.fir.renderWithType import org.jetbrains.kotlin.fir.resolve.constructType +import org.jetbrains.kotlin.fir.resolve.firSymbolProvider import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor import org.jetbrains.kotlin.fir.resolve.substitution.substitutorByMap -import org.jetbrains.kotlin.fir.service import org.jetbrains.kotlin.fir.symbols.StandardClassIds import org.jetbrains.kotlin.fir.symbols.invoke import org.jetbrains.kotlin.fir.types.* @@ -71,7 +71,7 @@ internal object CreateFreshTypeVariableSubstitutorStage : ResolutionStage() { is FirStarProjection -> csBuilder.addEqualityConstraint( freshVariable.defaultType, typeParameter.bounds.firstOrNull()?.coneTypeUnsafe() - ?: StandardClassIds.Any(sink.components.session.service()).constructType(emptyArray(), true), + ?: StandardClassIds.Any(sink.components.session.firSymbolProvider).constructType(emptyArray(), true), SimpleConstraintSystemConstraintPosition ) else -> assert(typeArgument == FirTypePlaceholderProjection) { diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/PostponedArguments.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/PostponedArguments.kt index 35eff106053..c7d7934368a 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/PostponedArguments.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/PostponedArguments.kt @@ -7,7 +7,7 @@ package org.jetbrains.kotlin.fir.resolve.calls import org.jetbrains.kotlin.fir.declarations.FirAnonymousFunction import org.jetbrains.kotlin.fir.resolve.constructType -import org.jetbrains.kotlin.fir.service +import org.jetbrains.kotlin.fir.resolve.firSymbolProvider import org.jetbrains.kotlin.fir.symbols.StandardClassIds import org.jetbrains.kotlin.fir.symbols.invoke import org.jetbrains.kotlin.fir.types.* @@ -117,7 +117,7 @@ private fun extraLambdaInfo( ?: expectedType?.typeArguments?.singleOrNull()?.safeAs()?.type?.takeIf { isFunctionSupertype } ?: typeVariable.defaultType - val nothingType = StandardClassIds.Nothing(argument.session.service()).constructType(emptyArray(), false) + val nothingType = StandardClassIds.Nothing(argument.session.firSymbolProvider).constructType(emptyArray(), false) val parameters = argument.valueParameters?.map { it.returnTypeRef.coneTypeSafe() ?: nothingType } ?: emptyList() @@ -156,7 +156,7 @@ private fun extractLambdaParameters(expectedType: ConeKotlinType, argument: FirA val parameters = argument.valueParameters val expectedParameters = expectedType.valueParameterTypes - val nullableAnyType = StandardClassIds.Any(argument.session.service()).constructType(emptyArray(), true) + val nullableAnyType = StandardClassIds.Any(argument.session.firSymbolProvider).constructType(emptyArray(), true) if (parameters.isEmpty()) { return expectedParameters.map { it?.type ?: nullableAnyType } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/PostponedArgumentsAnalyzer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/PostponedArgumentsAnalyzer.kt index e6e16f5e7aa..99d7a7f0a6b 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/PostponedArgumentsAnalyzer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/PostponedArgumentsAnalyzer.kt @@ -5,11 +5,10 @@ package org.jetbrains.kotlin.fir.resolve.calls -import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.FirAnonymousFunction import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.resolve.constructType -import org.jetbrains.kotlin.fir.service +import org.jetbrains.kotlin.fir.resolve.firSymbolProvider import org.jetbrains.kotlin.fir.symbols.StandardClassIds.Unit import org.jetbrains.kotlin.fir.types.ConeKotlinType import org.jetbrains.kotlin.fir.types.FirTypeRef @@ -69,7 +68,7 @@ class PostponedArgumentsAnalyzer( lambda: ResolvedLambdaAtom//, //diagnosticHolder: KotlinDiagnosticsHolder ) { - val unitType = Unit(components.session.service()).constructType(emptyArray(), false) + val unitType = Unit(components.session.firSymbolProvider).constructType(emptyArray(), false) val stubsForPostponedVariables = c.bindingStubsForPostponedVariables() val currentSubstitutor = c.buildCurrentSubstitutor(stubsForPostponedVariables.mapKeys { it.key.freshTypeConstructor(c) }) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/TowerLevels.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/TowerLevels.kt index ae6bddceaec..6de76a99d55 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/TowerLevels.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/TowerLevels.kt @@ -267,7 +267,7 @@ fun FirCallableDeclaration<*>.dispatchReceiverValue(session: FirSession): ClassD // TODO: this is not true atCall least for inner class constructors if (this is FirConstructor) return null val id = this.symbol.callableId.classId ?: return null - val symbol = session.service().getClassLikeSymbolByFqName(id) as? FirClassSymbol ?: return null + val symbol = session.firSymbolProvider.getClassLikeSymbolByFqName(id) as? FirClassSymbol ?: return null val regularClass = symbol.fir return ClassDispatchReceiverValue(regularClass.symbol) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/impl/FirDependenciesSymbolProviderImpl.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/impl/FirDependenciesSymbolProviderImpl.kt index c1d186fa5b5..68ff3bf77a7 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/impl/FirDependenciesSymbolProviderImpl.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/impl/FirDependenciesSymbolProviderImpl.kt @@ -8,10 +8,9 @@ package org.jetbrains.kotlin.fir.resolve.impl import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.dependenciesWithoutSelf import org.jetbrains.kotlin.fir.resolve.AbstractFirSymbolProvider -import org.jetbrains.kotlin.fir.resolve.FirSymbolProvider import org.jetbrains.kotlin.fir.resolve.ScopeSession +import org.jetbrains.kotlin.fir.resolve.firSymbolProvider import org.jetbrains.kotlin.fir.scopes.FirScope -import org.jetbrains.kotlin.fir.service import org.jetbrains.kotlin.fir.symbols.CallableId import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirClassLikeSymbol @@ -24,7 +23,7 @@ class FirDependenciesSymbolProviderImpl(val session: FirSession) : AbstractFirSy private val dependencyProviders by lazy { val moduleInfo = session.moduleInfo ?: return@lazy emptyList() moduleInfo.dependenciesWithoutSelf().mapNotNull { - session.sessionProvider?.getSession(it)?.service() + session.sessionProvider?.getSession(it)?.firSymbolProvider }.toList() } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirBodyResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirBodyResolveTransformer.kt index fa7cf025a2e..b44d058221e 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirBodyResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirBodyResolveTransformer.kt @@ -54,7 +54,7 @@ open class FirBodyResolveTransformer( final override val noExpectedType = FirImplicitTypeRefImpl(null) private inline val builtinTypes: BuiltinTypes get() = session.builtinTypes - final override val symbolProvider = session.service() + final override val symbolProvider = session.firSymbolProvider private var packageFqName = FqName.ROOT final override lateinit var file: FirFile @@ -173,7 +173,7 @@ open class FirBodyResolveTransformer( } override fun transformTypeOperatorCall(typeOperatorCall: FirTypeOperatorCall, data: Any?): CompositeTransformResult { - val symbolProvider = session.service() + val symbolProvider = session.firSymbolProvider val resolved = transformExpression(typeOperatorCall, data).single when ((resolved as FirTypeOperatorCall).operation) { FirOperation.IS, FirOperation.NOT_IS -> { @@ -826,7 +826,7 @@ open class FirBodyResolveTransformer( override fun transformGetClassCall(getClassCall: FirGetClassCall, data: Any?): CompositeTransformResult { val transformedGetClassCall = transformExpression(getClassCall, data).single as FirGetClassCall - val kClassSymbol = ClassId.fromString("kotlin/reflect/KClass")(session.service()) + val kClassSymbol = ClassId.fromString("kotlin/reflect/KClass")(session.firSymbolProvider) val typeOfExpression = when (val lhs = transformedGetClassCall.argument) { is FirResolvedQualifier -> { diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/types/ArrayUtils.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/types/ArrayUtils.kt index 3e3e48e7000..e5497709691 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/types/ArrayUtils.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/types/ArrayUtils.kt @@ -8,13 +8,13 @@ package org.jetbrains.kotlin.fir.types import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.resolve.FirSymbolProvider import org.jetbrains.kotlin.fir.resolve.constructType -import org.jetbrains.kotlin.fir.service +import org.jetbrains.kotlin.fir.resolve.firSymbolProvider import org.jetbrains.kotlin.fir.symbols.StandardClassIds import org.jetbrains.kotlin.fir.symbols.invoke fun ConeKotlinType.createArrayOf(session: FirSession, nullable: Boolean = false): ConeKotlinType { - val symbolProvider: FirSymbolProvider = session.service() + val symbolProvider: FirSymbolProvider = session.firSymbolProvider if (this is ConeClassType) { val primitiveArrayId = StandardClassIds.primitiveArrayTypeByElementType[lookupTag.classId] if (primitiveArrayId != null) { @@ -33,7 +33,7 @@ fun ConeKotlinType.arrayElementType(session: FirSession): ConeKotlinType? { return (typeArguments.first() as ConeTypedProjection).type val elementType = StandardClassIds.elementTypeByPrimitiveArrayType[classId] if (elementType != null) { - return elementType.invoke(session.service()).constructType(emptyArray(), isNullable = false) + return elementType.invoke(session.firSymbolProvider).constructType(emptyArray(), isNullable = false) } return null diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/types/ConeTypeContext.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/types/ConeTypeContext.kt index 9d073e98a46..c644f63fcd9 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/types/ConeTypeContext.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/types/ConeTypeContext.kt @@ -155,7 +155,7 @@ interface ConeTypeContext : TypeSystemContext, TypeSystemOptimizationContext, Ty require(this is ConeKotlinType) return this.typeArguments.getOrNull(index) - ?: StandardClassIds.Any(session.service()).constructType(emptyArray(), false) // TODO wtf + ?: StandardClassIds.Any(session.firSymbolProvider).constructType(emptyArray(), false) // TODO wtf } override fun KotlinTypeMarker.asTypeArgument(): TypeArgumentMarker { diff --git a/compiler/fir/resolve/tests/org/jetbrains/kotlin/fir/java/AbstractFirTypeEnhancementTest.kt b/compiler/fir/resolve/tests/org/jetbrains/kotlin/fir/java/AbstractFirTypeEnhancementTest.kt index 647cff7535b..5a22e13f302 100644 --- a/compiler/fir/resolve/tests/org/jetbrains/kotlin/fir/java/AbstractFirTypeEnhancementTest.kt +++ b/compiler/fir/resolve/tests/org/jetbrains/kotlin/fir/java/AbstractFirTypeEnhancementTest.kt @@ -28,15 +28,11 @@ import org.jetbrains.kotlin.fir.java.declarations.FirJavaConstructor import org.jetbrains.kotlin.fir.java.declarations.FirJavaField import org.jetbrains.kotlin.fir.java.declarations.FirJavaMethod import org.jetbrains.kotlin.fir.java.scopes.JavaClassEnhancementScope -import org.jetbrains.kotlin.fir.resolve.FirSymbolProvider import org.jetbrains.kotlin.fir.resolve.ScopeSession +import org.jetbrains.kotlin.fir.resolve.firSymbolProvider import org.jetbrains.kotlin.fir.resolve.impl.FirCompositeSymbolProvider import org.jetbrains.kotlin.fir.scopes.ProcessorAction import org.jetbrains.kotlin.fir.scopes.impl.FirCompositeScope -import org.jetbrains.kotlin.fir.service -import org.jetbrains.kotlin.fir.symbols.impl.FirConstructorSymbol -import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol -import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name @@ -151,7 +147,7 @@ abstract class AbstractFirTypeEnhancementTest : KtUsefulTestCase() { val javaFirDump = StringBuilder().also { builder -> val renderer = FirRenderer(builder) - val symbolProvider = session.service() as FirCompositeSymbolProvider + val symbolProvider = session.firSymbolProvider as FirCompositeSymbolProvider val javaProvider = symbolProvider.providers.filterIsInstance().first() fun processClassWithChildren(psiClass: PsiClass, parentFqName: FqName) { diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirSession.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirSession.kt index 0fc81764214..ccde9a41738 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirSession.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirSession.kt @@ -56,6 +56,7 @@ interface FirSessionProvider { fun getSession(moduleInfo: ModuleInfo): FirSession? } +@Deprecated("This is very slow, introduce & use componentArrayAccessor instead") inline fun FirSession.service(): T = getService(T::class)