diff --git a/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmClassCodegen.kt b/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmClassCodegen.kt index 60da9840dce..f165086859d 100644 --- a/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmClassCodegen.kt +++ b/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmClassCodegen.kt @@ -22,7 +22,7 @@ import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirFunction import org.jetbrains.kotlin.fir.declarations.FirTypeParameter import org.jetbrains.kotlin.fir.declarations.builder.* -import org.jetbrains.kotlin.fir.inferenceContext +import org.jetbrains.kotlin.fir.typeContext import org.jetbrains.kotlin.fir.scopes.impl.withReplacedConeType import org.jetbrains.kotlin.fir.serialization.FirElementSerializer import org.jetbrains.kotlin.fir.symbols.impl.FirAnonymousFunctionSymbol @@ -62,7 +62,7 @@ class FirJvmClassCodegen( else -> null } - private val approximator = object : AbstractTypeApproximator(session.inferenceContext) { + private val approximator = object : AbstractTypeApproximator(session.typeContext) { override fun createErrorType(message: String): SimpleTypeMarker { return ConeKotlinErrorType(message) } 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 e5eda041fce..c7177fa2226 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 @@ -57,7 +57,7 @@ class Fir2IrVisitor( private val integerApproximator = IntegerLiteralTypeApproximationTransformer( session.firSymbolProvider, - session.inferenceContext, + session.typeContext, session ) @@ -297,7 +297,7 @@ class Fir2IrVisitor( return conversionScope.withSafeCallSubject(receiverVariable) { val afterNotNullCheck = safeCallExpression.regularQualifiedAccess.accept(this, data) as IrExpression - val isReceiverNullable = with(components.session.inferenceContext) { + val isReceiverNullable = with(components.session.typeContext) { safeCallExpression.receiver.typeRef.coneTypeSafe()?.isNullableType() == true } diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/enhancement/javaTypeUtils.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/enhancement/javaTypeUtils.kt index 64320075053..3677166bad9 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/enhancement/javaTypeUtils.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/enhancement/javaTypeUtils.kt @@ -13,7 +13,6 @@ import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.expressions.* import org.jetbrains.kotlin.fir.expressions.builder.buildConstExpression import org.jetbrains.kotlin.fir.expressions.builder.buildQualifiedAccessExpression -import org.jetbrains.kotlin.fir.java.JavaTypeParameterStack import org.jetbrains.kotlin.fir.java.declarations.FirJavaClass import org.jetbrains.kotlin.fir.java.declarations.FirJavaField import org.jetbrains.kotlin.fir.references.builder.buildResolvedNamedReference diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/SessionUtils.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/SessionUtils.kt index f99b528c351..89fd0f0664d 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/SessionUtils.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/SessionUtils.kt @@ -9,6 +9,5 @@ import org.jetbrains.kotlin.fir.types.ConeInferenceContext import org.jetbrains.kotlin.fir.types.ConeTypeCheckerContext import org.jetbrains.kotlin.fir.types.ConeTypeContext -val FirSession.inferenceContext: ConeInferenceContext +val FirSession.typeContext: ConeInferenceContext get() = ConeTypeCheckerContext(isErrorTypeEqualsToAnything = false, isStubTypeEqualsToAnything = false, this) -val FirSession.typeContext: ConeTypeContext get() = inferenceContext 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 ad029c11f92..d614a6b898b 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 @@ -16,7 +16,7 @@ import org.jetbrains.kotlin.fir.expressions.* import org.jetbrains.kotlin.fir.expressions.builder.FirResolvedReifiedParameterReferenceBuilder import org.jetbrains.kotlin.fir.expressions.builder.buildExpressionWithSmartcast import org.jetbrains.kotlin.fir.expressions.builder.buildResolvedQualifier -import org.jetbrains.kotlin.fir.inferenceContext +import org.jetbrains.kotlin.fir.typeContext import org.jetbrains.kotlin.fir.references.FirErrorNamedReference import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference import org.jetbrains.kotlin.fir.references.FirSuperReference @@ -367,7 +367,7 @@ private fun BodyResolveComponents.typeFromSymbol(symbol: AbstractFirBasedSymbol< val returnType = returnTypeCalculator.tryCalculateReturnType(symbol.phasedFir) if (makeNullable) { returnType.withReplacedConeType( - returnType.coneTypeUnsafe().withNullability(ConeNullability.NULLABLE, session.inferenceContext), + returnType.coneTypeUnsafe().withNullability(ConeNullability.NULLABLE, session.typeContext), ) } else { returnType @@ -444,11 +444,11 @@ fun FirSafeCallExpression.propagateTypeFromQualifiedAccessAfterNullCheck( ) { val receiverType = nullableReceiverExpression.typeRef.coneTypeSafe() val typeAfterNullCheck = regularQualifiedAccess.expressionTypeOrUnitForAssignment() ?: return - val isReceiverActuallyNullable = receiverType != null && session.inferenceContext.run { receiverType.isNullableType() } + val isReceiverActuallyNullable = receiverType != null && session.typeContext.run { receiverType.isNullableType() } val resultingType = if (isReceiverActuallyNullable) - typeAfterNullCheck.withNullability(ConeNullability.NULLABLE, session.inferenceContext) + typeAfterNullCheck.withNullability(ConeNullability.NULLABLE, session.typeContext) else typeAfterNullCheck diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/SamResolution.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/SamResolution.kt index 64b9fbb481a..3f3c7d8f3fc 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/SamResolution.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/SamResolution.kt @@ -14,7 +14,7 @@ import org.jetbrains.kotlin.fir.declarations.builder.FirTypeParameterBuilder import org.jetbrains.kotlin.fir.declarations.builder.buildSimpleFunction import org.jetbrains.kotlin.fir.declarations.builder.buildValueParameter import org.jetbrains.kotlin.fir.declarations.impl.FirDeclarationStatusImpl -import org.jetbrains.kotlin.fir.inferenceContext +import org.jetbrains.kotlin.fir.typeContext import org.jetbrains.kotlin.fir.resolve.calls.FirSyntheticFunctionSymbol import org.jetbrains.kotlin.fir.resolve.substitution.substitutorByMap import org.jetbrains.kotlin.fir.scopes.unsubstitutedScope @@ -92,7 +92,7 @@ class FirSamResolverImpl( val result = substitutor .substituteOrSelf(unsubstitutedFunctionType) - .withNullability(ConeNullability.create(type.isMarkedNullable), firSession.inferenceContext) + .withNullability(ConeNullability.create(type.isMarkedNullable), firSession.typeContext) require(result is ConeLookupTagBasedType) { "Function type should always be ConeLookupTagBasedType, but ${result::class} was found" 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 39aef57aa75..4fdf042f9a0 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 @@ -9,7 +9,7 @@ import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.* -import org.jetbrains.kotlin.fir.inferenceContext +import org.jetbrains.kotlin.fir.typeContext import org.jetbrains.kotlin.fir.scopes.FirTypeScope import org.jetbrains.kotlin.fir.scopes.FirScope import org.jetbrains.kotlin.fir.scopes.impl.FirClassSubstitutionScope @@ -70,7 +70,7 @@ fun createSubstitution( } else /* StarProjection */ -> { ConeTypeIntersector.intersectTypes( - session.inferenceContext, + session.typeContext, typeParameterSymbol.fir.bounds.map { it.coneTypeUnsafe() } ) } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/Arguments.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/Arguments.kt index 8be2624cbdf..354b60add00 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/Arguments.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/Arguments.kt @@ -10,7 +10,7 @@ import org.jetbrains.kotlin.fir.declarations.FirAnonymousFunction import org.jetbrains.kotlin.fir.declarations.FirFunction import org.jetbrains.kotlin.fir.declarations.FirValueParameter import org.jetbrains.kotlin.fir.expressions.* -import org.jetbrains.kotlin.fir.inferenceContext +import org.jetbrains.kotlin.fir.typeContext import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference import org.jetbrains.kotlin.fir.resolve.fullyExpandedType import org.jetbrains.kotlin.fir.resolve.inference.isBuiltinFunctionalType @@ -223,7 +223,7 @@ fun Candidate.resolvePlainArgumentType( val argumentTypeForApplicabilityCheck = if (useNullableArgumentType) - capturedType.withNullability(ConeNullability.NULLABLE, session.inferenceContext) + capturedType.withNullability(ConeNullability.NULLABLE, session.typeContext) else capturedType @@ -276,7 +276,7 @@ private fun checkApplicabilityForArgumentType( return } - val nullableExpectedType = expectedType.withNullability(ConeNullability.NULLABLE, sink.components.session.inferenceContext) + val nullableExpectedType = expectedType.withNullability(ConeNullability.NULLABLE, sink.components.session.typeContext) if (csBuilder.addSubtypeConstraintIfCompatible(argumentType, nullableExpectedType, position)) { sink.reportApplicability(CandidateApplicability.WRONG_RECEIVER) // TODO diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ResolutionStages.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ResolutionStages.kt index 3bea732b00c..d2035e96438 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ResolutionStages.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ResolutionStages.kt @@ -11,7 +11,7 @@ import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression import org.jetbrains.kotlin.fir.expressions.FirResolvedQualifier -import org.jetbrains.kotlin.fir.inferenceContext +import org.jetbrains.kotlin.fir.typeContext import org.jetbrains.kotlin.fir.references.FirSuperReference import org.jetbrains.kotlin.fir.render import org.jetbrains.kotlin.fir.resolve.* @@ -310,7 +310,7 @@ private fun FirSession.createKFunctionType( } val returnType = - if (expectedReturnType != null && inferenceContext.run { expectedReturnType.isUnit() }) + if (expectedReturnType != null && typeContext.run { expectedReturnType.isUnit() }) expectedReturnType else returnTypeRef.coneTypeSafe() ?: ConeKotlinErrorType("No type for return type of $function") diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirSyntheticCallGenerator.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirSyntheticCallGenerator.kt index d415a225692..f2695bdab72 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirSyntheticCallGenerator.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirSyntheticCallGenerator.kt @@ -16,7 +16,7 @@ import org.jetbrains.kotlin.fir.declarations.impl.FirDeclarationStatusImpl import org.jetbrains.kotlin.fir.expressions.* import org.jetbrains.kotlin.fir.expressions.builder.buildArgumentList import org.jetbrains.kotlin.fir.expressions.builder.buildFunctionCall -import org.jetbrains.kotlin.fir.inferenceContext +import org.jetbrains.kotlin.fir.typeContext import org.jetbrains.kotlin.fir.references.FirReference import org.jetbrains.kotlin.fir.references.builder.buildErrorNamedReference import org.jetbrains.kotlin.fir.references.impl.FirStubReference @@ -208,7 +208,7 @@ class FirSyntheticCallGenerator( val (typeParameter, returnType) = generateSyntheticSelectTypeParameter() val argumentType = buildResolvedTypeRef { - type = returnType.coneTypeUnsafe().withNullability(ConeNullability.NULLABLE, session.inferenceContext) + type = returnType.coneTypeUnsafe().withNullability(ConeNullability.NULLABLE, session.typeContext) } val typeArgument = buildTypeProjectionWithVariance { typeRef = returnType diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/BodyResolveUtils.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/BodyResolveUtils.kt index ba556896724..0c3355c5cb5 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/BodyResolveUtils.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/BodyResolveUtils.kt @@ -8,7 +8,7 @@ package org.jetbrains.kotlin.fir.resolve.transformers.body.resolve import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.expressions.FirExpression -import org.jetbrains.kotlin.fir.inferenceContext +import org.jetbrains.kotlin.fir.typeContext import org.jetbrains.kotlin.fir.renderWithType import org.jetbrains.kotlin.fir.resolve.ScopeSession import org.jetbrains.kotlin.fir.resolve.inference.InferenceComponents @@ -35,6 +35,6 @@ internal fun inferenceComponents( returnTypeCalculator: ReturnTypeCalculator, scopeSession: ScopeSession ): InferenceComponents { - val inferenceContext = session.inferenceContext + val inferenceContext = session.typeContext return InferenceComponents(inferenceContext, session, returnTypeCalculator, scopeSession) } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirExpressionsResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirExpressionsResolveTransformer.kt index 329cad93a3e..a29ea2a8c62 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirExpressionsResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirExpressionsResolveTransformer.kt @@ -420,7 +420,7 @@ open class FirExpressionsResolveTransformer(transformer: FirBodyResolveTransform resolved.resultType = conversionTypeRef.withReplacedConeType( conversionTypeRef.coneTypeUnsafe().withNullability( - ConeNullability.NULLABLE, session.inferenceContext, + ConeNullability.NULLABLE, session.typeContext, ), ) }