[FIR] Get rid of FirSession.inferenceContext
Leave only FirSession.typeContext
This commit is contained in:
+2
-2
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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<ConeKotlinType>()?.isNullableType() == true
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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<ConeKotlinType>().withNullability(ConeNullability.NULLABLE, session.inferenceContext),
|
||||
returnType.coneTypeUnsafe<ConeKotlinType>().withNullability(ConeNullability.NULLABLE, session.typeContext),
|
||||
)
|
||||
} else {
|
||||
returnType
|
||||
@@ -444,11 +444,11 @@ fun FirSafeCallExpression.propagateTypeFromQualifiedAccessAfterNullCheck(
|
||||
) {
|
||||
val receiverType = nullableReceiverExpression.typeRef.coneTypeSafe<ConeKotlinType>()
|
||||
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
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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() }
|
||||
)
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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")
|
||||
|
||||
+2
-2
@@ -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<ConeKotlinType>().withNullability(ConeNullability.NULLABLE, session.inferenceContext)
|
||||
type = returnType.coneTypeUnsafe<ConeKotlinType>().withNullability(ConeNullability.NULLABLE, session.typeContext)
|
||||
}
|
||||
val typeArgument = buildTypeProjectionWithVariance {
|
||||
typeRef = returnType
|
||||
|
||||
+2
-2
@@ -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)
|
||||
}
|
||||
|
||||
+1
-1
@@ -420,7 +420,7 @@ open class FirExpressionsResolveTransformer(transformer: FirBodyResolveTransform
|
||||
resolved.resultType =
|
||||
conversionTypeRef.withReplacedConeType(
|
||||
conversionTypeRef.coneTypeUnsafe<ConeKotlinType>().withNullability(
|
||||
ConeNullability.NULLABLE, session.inferenceContext,
|
||||
ConeNullability.NULLABLE, session.typeContext,
|
||||
),
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user