From 98dba48fde46e57e2721e27f10d445235a5c8a5a Mon Sep 17 00:00:00 2001 From: Ivan Kylchik Date: Tue, 27 Feb 2024 15:12:24 +0100 Subject: [PATCH] [Native] Simplify `AssertRemovalLowering` --- .../kotlin/backend/konan/lower/AssertRemovalLowering.kt | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/AssertRemovalLowering.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/AssertRemovalLowering.kt index 24aaaa84de7..4f24dcf6ceb 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/AssertRemovalLowering.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/AssertRemovalLowering.kt @@ -8,7 +8,6 @@ package org.jetbrains.kotlin.backend.konan.lower import org.jetbrains.kotlin.backend.common.BodyLoweringPass import org.jetbrains.kotlin.backend.konan.Context import org.jetbrains.kotlin.ir.declarations.IrDeclaration -import org.jetbrains.kotlin.ir.expressions.IrBlock import org.jetbrains.kotlin.ir.expressions.IrBody import org.jetbrains.kotlin.ir.expressions.IrExpression import org.jetbrains.kotlin.ir.expressions.IrReturnableBlock @@ -22,10 +21,12 @@ internal class AssertRemovalLowering(val context: Context) : BodyLoweringPass { override fun lower(irBody: IrBody, container: IrDeclaration) { irBody.transformChildrenVoid(object : IrElementTransformerVoid() { - override fun visitBlock(expression: IrBlock): IrExpression { - if ((expression as? IrReturnableBlock)?.inlineFunction?.let { it.symbol in asserts } == true) + override fun visitReturnableBlock(expression: IrReturnableBlock): IrExpression { + val inlinedFunction = expression.inlineFunction ?: return super.visitReturnableBlock(expression) + if (inlinedFunction.symbol in asserts) { return IrCompositeImpl(expression.startOffset, expression.endOffset, expression.type) - return super.visitBlock(expression) + } + return super.visitReturnableBlock(expression) } }) }