From 71bf8a14e834b46fa60ff5421e970586a4a8bf12 Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Tue, 3 Dec 2019 11:21:27 +0300 Subject: [PATCH] [FIR] Make `ConeTypeCheckerContext` implements `ConeInferenceContext` --- .../fir/resolve/calls/ConeInferenceContext.kt | 19 +++++++++++++++++++ .../body/resolve/BodyResolveUtils.kt | 18 ------------------ .../kotlin/fir/types/ConeTypeContext.kt | 4 ++-- 3 files changed, 21 insertions(+), 20 deletions(-) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ConeInferenceContext.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ConeInferenceContext.kt index db6b7280d6a..4d078f15544 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ConeInferenceContext.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ConeInferenceContext.kt @@ -298,4 +298,23 @@ interface ConeInferenceContext : TypeSystemInferenceExtensionContext, override fun TypeConstructorMarker.isCapturedTypeConstructor(): Boolean { return this is ConeCapturedTypeConstructor } + + override fun TypeConstructorMarker.getApproximatedIntegerLiteralType(): KotlinTypeMarker { + TODO() + } + + override fun KotlinTypeMarker.removeExactAnnotation(): KotlinTypeMarker { + // TODO + return this + } + + override fun TypeConstructorMarker.toErrorType(): SimpleTypeMarker { + require(this is ErrorTypeConstructor) + return ConeClassErrorType(reason) + } + + override fun findCommonIntegerLiteralTypesSuperType(explicitSupertypes: List): SimpleTypeMarker? { + // TODO: implement + return null + } } 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 5838608a100..72ec095995b 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 @@ -43,26 +43,8 @@ internal interface UniversalConeInferenceContext : internal fun FirSession.inferenceContext(): UniversalConeInferenceContext { val session = this return object : UniversalConeInferenceContext { - override fun findCommonIntegerLiteralTypesSuperType(explicitSupertypes: List): SimpleTypeMarker? { - // TODO: implement - return null - } - - override fun TypeConstructorMarker.getApproximatedIntegerLiteralType(): KotlinTypeMarker { - TODO("not implemented") - } - override val session: FirSession get() = session - - override fun KotlinTypeMarker.removeExactAnnotation(): KotlinTypeMarker { - return this - } - - override fun TypeConstructorMarker.toErrorType(): SimpleTypeMarker { - require(this is ErrorTypeConstructor) - return ConeClassErrorType(reason) - } } } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/types/ConeTypeContext.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/types/ConeTypeContext.kt index 5ed26c91a73..fe3ffce2f4d 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/types/ConeTypeContext.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/types/ConeTypeContext.kt @@ -496,7 +496,7 @@ class ConeTypeCheckerContext( override val isErrorTypeEqualsToAnything: Boolean, override val isStubTypeEqualsToAnything: Boolean, override val session: FirSession -) : AbstractTypeCheckerContext(), ConeTypeContext { +) : AbstractTypeCheckerContext(), ConeInferenceContext { override fun substitutionSupertypePolicy(type: SimpleTypeMarker): SupertypesPolicy { if (type.argumentsCount() == 0) return SupertypesPolicy.LowerIfFlexible require(type is ConeKotlinType) @@ -530,7 +530,7 @@ class ConeTypeCheckerContext( } override fun prepareType(type: KotlinTypeMarker): KotlinTypeMarker { - return super.prepareType(type) + return super.prepareType(type) } override fun refineType(type: KotlinTypeMarker): KotlinTypeMarker {