From a4fff7c7c02482b54c1d5a31c7063de0ab45575a Mon Sep 17 00:00:00 2001 From: Kirill Rakhman Date: Tue, 12 Sep 2023 17:22:36 +0200 Subject: [PATCH] [FIR] Inline FirExpression.coneTypeUnsafe #KT-61367 --- .../serialization/constant/FirToConstantValueTransformer.kt | 6 +++--- .../src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt | 2 +- .../tree/src/org/jetbrains/kotlin/fir/types/FirTypeUtils.kt | 3 --- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/constant/FirToConstantValueTransformer.kt b/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/constant/FirToConstantValueTransformer.kt index 146fbf090f2..ddf11b653c7 100644 --- a/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/constant/FirToConstantValueTransformer.kt +++ b/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/constant/FirToConstantValueTransformer.kt @@ -23,8 +23,8 @@ import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirArrayOfCall import org.jetbrains.kotlin.fir.symbols.impl.FirConstructorSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirFieldSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol +import org.jetbrains.kotlin.fir.types.ConeKotlinType import org.jetbrains.kotlin.fir.types.coneType -import org.jetbrains.kotlin.fir.types.coneTypeUnsafe import org.jetbrains.kotlin.fir.types.resolvedType import org.jetbrains.kotlin.fir.visitors.FirDefaultVisitor import org.jetbrains.kotlin.types.ConstantValueKind @@ -120,7 +120,7 @@ internal object FirToConstantValueTransformer : FirDefaultVisitor? { - return create(getClassCall.argument.coneTypeUnsafe()) + return create(getClassCall.argument.resolvedType) } override fun visitQualifiedAccessExpression( @@ -263,7 +263,7 @@ internal object FirToConstantValueChecker : FirDefaultVisitor.toSymbolForCall( fun FirConstExpression<*>.getIrConstKind(): IrConstKind<*> = when (kind) { ConstantValueKind.IntegerLiteral, ConstantValueKind.UnsignedIntegerLiteral -> { - val type = coneTypeUnsafe() + val type = resolvedType as ConeIntegerLiteralType type.getApproximatedType().toConstKind()!!.toIrConstKind() } diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/FirTypeUtils.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/FirTypeUtils.kt index c2d445a0a16..37de5f001e8 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/FirTypeUtils.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/FirTypeUtils.kt @@ -44,9 +44,6 @@ val FirExpression.resolvedType: ConeKotlinType @UnresolvedExpressionTypeAccess inline fun FirExpression.coneTypeSafe(): T? = (coneTypeOrNull as? T) -@OptIn(UnresolvedExpressionTypeAccess::class) -inline fun FirExpression.coneTypeUnsafe(): T = coneTypeOrNull as T - @OptIn(UnresolvedExpressionTypeAccess::class) val FirExpression.isResolved: Boolean get() = coneTypeOrNull != null