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.descriptors.ClassKind
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.declarations.* 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.FirScope
import org.jetbrains.kotlin.fir.scopes.impl.* import org.jetbrains.kotlin.fir.scopes.impl.*
import org.jetbrains.kotlin.fir.symbols.impl.* import org.jetbrains.kotlin.fir.symbols.impl.*
import org.jetbrains.kotlin.fir.typeContext
import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.fir.types.*
abstract class SupertypeSupplier { abstract class SupertypeSupplier {
@@ -87,7 +87,7 @@ private fun createSubstitution(
} }
else /* StarProjection */ -> { else /* StarProjection */ -> {
ConeTypeIntersector.intersectTypes( ConeTypeIntersector.intersectTypes(
session.inferenceContext(), session.typeContext,
typeParameterSymbol.fir.bounds.map { it.coneTypeUnsafe() } 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.ScopeSession
import org.jetbrains.kotlin.fir.resolve.toSymbol import org.jetbrains.kotlin.fir.resolve.toSymbol
import org.jetbrains.kotlin.fir.resolve.transformers.ReturnTypeCalculator 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.symbols.impl.FirTypeParameterSymbol
import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.fir.types.*
import org.jetbrains.kotlin.resolve.calls.inference.components.ConstraintIncorporator import org.jetbrains.kotlin.resolve.calls.inference.components.ConstraintIncorporator
@@ -41,7 +40,7 @@ class TypeParameterBasedTypeVariable(val typeParameterSymbol: FirTypeParameterSy
ConeTypeVariable(typeParameterSymbol.name.identifier) ConeTypeVariable(typeParameterSymbol.name.identifier)
class InferenceComponents( class InferenceComponents(
val ctx: UniversalConeInferenceContext, val ctx: ConeInferenceContext,
val session: FirSession, val session: FirSession,
val returnTypeCalculator: ReturnTypeCalculator, val returnTypeCalculator: ReturnTypeCalculator,
val scopeSession: ScopeSession 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.expressions.FirExpression
import org.jetbrains.kotlin.fir.renderWithType import org.jetbrains.kotlin.fir.renderWithType
import org.jetbrains.kotlin.fir.resolve.ScopeSession 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.calls.InferenceComponents
import org.jetbrains.kotlin.fir.resolve.transformers.ReturnTypeCalculator import org.jetbrains.kotlin.fir.resolve.transformers.ReturnTypeCalculator
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
import org.jetbrains.kotlin.fir.typeContext
import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.types.model.TypeSystemInferenceExtensionContextDelegate
inline fun <reified T : FirElement> FirBasedSymbol<*>.firUnsafe(): T { inline fun <reified T : FirElement> FirBasedSymbol<*>.firUnsafe(): T {
val fir = this.fir val fir = this.fir
@@ -31,22 +30,11 @@ internal inline var FirExpression.resultType: FirTypeRef
replaceTypeRef(type) 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( internal fun inferenceComponents(
session: FirSession, session: FirSession,
returnTypeCalculator: ReturnTypeCalculator, returnTypeCalculator: ReturnTypeCalculator,
scopeSession: ScopeSession scopeSession: ScopeSession
): InferenceComponents { ): InferenceComponents {
val inferenceContext = session.inferenceContext() val inferenceContext = session.typeContext
return InferenceComponents(inferenceContext, session, returnTypeCalculator, scopeSession) return InferenceComponents(inferenceContext, session, returnTypeCalculator, scopeSession)
} }