From 705d960b8fd16a76a5cd98484641bf189f4d4bf2 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Thu, 10 Feb 2022 17:41:08 +0300 Subject: [PATCH] FIR2IR: fix behavior of implicitCastOrExpression for DNN types --- .../kotlin/fir/backend/Fir2IrImplicitCastInserter.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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 659c0918c49..9f52c664f14 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 @@ -319,7 +319,9 @@ class Fir2IrImplicitCastInserter( } internal fun implicitCastOrExpression(original: IrExpression, castType: IrType): IrExpression { - if (original.type.makeNotNull() == castType.makeNotNull()) return original + val originalNotNull = original.type.makeNotNull() + if (originalNotNull == castType.makeNotNull()) return original + if (castType is IrDefinitelyNotNullType && originalNotNull == castType.original.makeNotNull()) return original return implicitCast(original, castType) }