From 40f95cd5dd6c9834da0a5fbe0bb8bfb1cc4c9920 Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Thu, 9 Nov 2023 11:11:07 +0200 Subject: [PATCH] [FIR2IR] Minor: reuse `approximateForIrOrNull` utility in Fir2IrTypeConverter --- .../kotlin/fir/backend/Fir2IrImplicitCastInserter.kt | 4 ---- .../kotlin/fir/backend/Fir2IrTypeConverter.kt | 10 ++++++---- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrImplicitCastInserter.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrImplicitCastInserter.kt index 876bc35020a..60b105990f8 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrImplicitCastInserter.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrImplicitCastInserter.kt @@ -446,8 +446,4 @@ class Fir2IrImplicitCastInserter( return lowerBound.isMarkedNullable != upperBound.isMarkedNullable } } - - private fun ConeKotlinType.approximateForIrOrNull(): ConeKotlinType? { - return session.typeApproximator.approximateToSuperType(this, TypeApproximatorConfiguration.FrontendToBackendTypesApproximation) - } } diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrTypeConverter.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrTypeConverter.kt index 46283914669..32f12522ae7 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrTypeConverter.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrTypeConverter.kt @@ -234,10 +234,7 @@ class Fir2IrTypeConverter( original.toIrType(typeOrigin).makeNotNull() } is ConeIntersectionType -> { - val approximated = session.typeApproximator.approximateToSuperType( - this, - TypeApproximatorConfiguration.FrontendToBackendTypesApproximation - )!! + val approximated = approximateForIrOrNull()!! approximated.toIrType(typeOrigin) } is ConeStubType -> createErrorType() @@ -362,3 +359,8 @@ fun ConeKotlinType.toIrType( with(typeConverter) { toIrType(typeOrigin) } + +context(Fir2IrComponents) +internal fun ConeKotlinType.approximateForIrOrNull(): ConeKotlinType? { + return session.typeApproximator.approximateToSuperType(this, TypeApproximatorConfiguration.FrontendToBackendTypesApproximation) +}