FIR: Add different extension for FirSession.inferenceContext
This commit is contained in:
@@ -27,7 +27,6 @@ import org.jetbrains.kotlin.fir.resolve.transformers.IntegerLiteralTypeApproxima
|
||||
import org.jetbrains.kotlin.fir.scopes.ProcessorAction
|
||||
import org.jetbrains.kotlin.fir.scopes.impl.FirClassSubstitutionScope
|
||||
import org.jetbrains.kotlin.fir.scopes.impl.FirIntegerOperator
|
||||
import org.jetbrains.kotlin.fir.scopes.impl.FirIntegerOperatorCall
|
||||
import org.jetbrains.kotlin.fir.symbols.AccessorSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.*
|
||||
import org.jetbrains.kotlin.fir.types.*
|
||||
@@ -72,7 +71,7 @@ class Fir2IrVisitor(
|
||||
private val UNARY_OPERATIONS: Set<FirOperation> = EnumSet.of(FirOperation.EXCL)
|
||||
}
|
||||
|
||||
private val integerApproximator = IntegerLiteralTypeApproximationTransformer(session.firSymbolProvider, session.typeContext)
|
||||
private val integerApproximator = IntegerLiteralTypeApproximationTransformer(session.firSymbolProvider, session.inferenceContext)
|
||||
|
||||
private val typeContext = session.typeContext
|
||||
|
||||
|
||||
@@ -9,8 +9,9 @@ import org.jetbrains.kotlin.fir.resolve.calls.ConeInferenceContext
|
||||
import org.jetbrains.kotlin.fir.types.ConeTypeCheckerContext
|
||||
import org.jetbrains.kotlin.fir.types.ConeTypeContext
|
||||
import org.jetbrains.kotlin.types.AbstractTypeCheckerContext
|
||||
import org.jetbrains.kotlin.types.model.TypeSystemContext
|
||||
|
||||
private class SessionBasedTypeContext(override val session: FirSession) : ConeInferenceContext {
|
||||
private class SessionBasedInferenceContext(override val session: FirSession) : ConeInferenceContext {
|
||||
override fun newBaseTypeCheckerContext(
|
||||
errorTypesEqualToAnything: Boolean,
|
||||
stubTypesEqualToAnything: Boolean
|
||||
@@ -19,4 +20,5 @@ private class SessionBasedTypeContext(override val session: FirSession) : ConeIn
|
||||
}
|
||||
}
|
||||
|
||||
val FirSession.typeContext: ConeInferenceContext get() = SessionBasedTypeContext(this)
|
||||
val FirSession.inferenceContext: ConeInferenceContext get() = SessionBasedInferenceContext(this)
|
||||
val FirSession.typeContext: ConeTypeContext get() = inferenceContext
|
||||
|
||||
@@ -12,7 +12,7 @@ import org.jetbrains.kotlin.fir.declarations.*
|
||||
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.inferenceContext
|
||||
import org.jetbrains.kotlin.fir.types.*
|
||||
|
||||
abstract class SupertypeSupplier {
|
||||
@@ -87,7 +87,7 @@ private fun createSubstitution(
|
||||
}
|
||||
else /* StarProjection */ -> {
|
||||
ConeTypeIntersector.intersectTypes(
|
||||
session.typeContext,
|
||||
session.inferenceContext,
|
||||
typeParameterSymbol.fir.bounds.map { it.coneTypeUnsafe() }
|
||||
)
|
||||
}
|
||||
|
||||
+2
-2
@@ -13,7 +13,7 @@ import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
||||
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.inferenceContext
|
||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||
|
||||
inline fun <reified T : FirElement> FirBasedSymbol<*>.firUnsafe(): T {
|
||||
@@ -35,6 +35,6 @@ internal fun inferenceComponents(
|
||||
returnTypeCalculator: ReturnTypeCalculator,
|
||||
scopeSession: ScopeSession
|
||||
): InferenceComponents {
|
||||
val inferenceContext = session.typeContext
|
||||
val inferenceContext = session.inferenceContext
|
||||
return InferenceComponents(inferenceContext, session, returnTypeCalculator, scopeSession)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user