Minor. Get rid of UniversalConeInferenceContext

This commit is contained in:
Denis Zharkov
2019-12-11 14:10:18 +03:00
parent bbc9927bce
commit 0baf1e8fa7
3 changed files with 5 additions and 18 deletions
@@ -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() }
)
}
@@ -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
@@ -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 <reified T : FirElement> 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)
}