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 f3de901c79b..32d40ffdf66 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,10 +9,10 @@ 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.resolve.transformers.body.resolve.inferenceContext import org.jetbrains.kotlin.fir.scopes.FirScope import org.jetbrains.kotlin.fir.scopes.impl.* import org.jetbrains.kotlin.fir.symbols.impl.* +import org.jetbrains.kotlin.fir.typeContext import org.jetbrains.kotlin.fir.types.* abstract class SupertypeSupplier { @@ -87,7 +87,7 @@ private 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/InferenceUtil.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/InferenceUtil.kt index 4f7966e2e64..0822ab73b87 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/InferenceUtil.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/InferenceUtil.kt @@ -9,7 +9,6 @@ import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.resolve.ScopeSession import org.jetbrains.kotlin.fir.resolve.toSymbol import org.jetbrains.kotlin.fir.resolve.transformers.ReturnTypeCalculator -import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.UniversalConeInferenceContext import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.resolve.calls.inference.components.ConstraintIncorporator @@ -41,7 +40,7 @@ class TypeParameterBasedTypeVariable(val typeParameterSymbol: FirTypeParameterSy ConeTypeVariable(typeParameterSymbol.name.identifier) class InferenceComponents( - val ctx: UniversalConeInferenceContext, + val ctx: ConeInferenceContext, val session: FirSession, val returnTypeCalculator: ReturnTypeCalculator, val scopeSession: ScopeSession 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 926f0e5b043..b3b462b241a 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 @@ -10,12 +10,11 @@ import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.renderWithType import org.jetbrains.kotlin.fir.resolve.ScopeSession -import org.jetbrains.kotlin.fir.resolve.calls.ConeInferenceContext import org.jetbrains.kotlin.fir.resolve.calls.InferenceComponents import org.jetbrains.kotlin.fir.resolve.transformers.ReturnTypeCalculator import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol +import org.jetbrains.kotlin.fir.typeContext import org.jetbrains.kotlin.fir.types.FirTypeRef -import org.jetbrains.kotlin.types.model.TypeSystemInferenceExtensionContextDelegate inline fun FirBasedSymbol<*>.firUnsafe(): T { val fir = this.fir @@ -31,22 +30,11 @@ internal inline var FirExpression.resultType: FirTypeRef replaceTypeRef(type) } -interface UniversalConeInferenceContext : - ConeInferenceContext, TypeSystemInferenceExtensionContextDelegate - -internal fun FirSession.inferenceContext(): UniversalConeInferenceContext { - val session = this - return object : UniversalConeInferenceContext { - override val session: FirSession - get() = session - } -} - internal fun inferenceComponents( session: FirSession, returnTypeCalculator: ReturnTypeCalculator, scopeSession: ScopeSession ): InferenceComponents { - val inferenceContext = session.inferenceContext() + val inferenceContext = session.typeContext return InferenceComponents(inferenceContext, session, returnTypeCalculator, scopeSession) }