From edf6dec63bf3db4409d6fb5873502b0623d91cd9 Mon Sep 17 00:00:00 2001 From: Anton Bannykh Date: Tue, 24 Dec 2019 21:18:01 +0300 Subject: [PATCH] MultipleCatchesLowering --- .../ir/backend/js/lower/MultipleCatchesLowering.kt | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/MultipleCatchesLowering.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/MultipleCatchesLowering.kt index 3287984e9bf..85ab403c424 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/MultipleCatchesLowering.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/MultipleCatchesLowering.kt @@ -5,13 +5,12 @@ package org.jetbrains.kotlin.ir.backend.js.lower -import org.jetbrains.kotlin.backend.common.FileLoweringPass +import org.jetbrains.kotlin.backend.common.BodyLoweringPass import org.jetbrains.kotlin.ir.IrStatement import org.jetbrains.kotlin.ir.backend.js.JsIrBackendContext import org.jetbrains.kotlin.ir.backend.js.ir.JsIrBuilder import org.jetbrains.kotlin.ir.declarations.IrDeclaration import org.jetbrains.kotlin.ir.declarations.IrDeclarationParent -import org.jetbrains.kotlin.ir.declarations.IrFile import org.jetbrains.kotlin.ir.expressions.* import org.jetbrains.kotlin.ir.expressions.impl.IrBranchImpl import org.jetbrains.kotlin.ir.expressions.impl.IrCatchImpl @@ -45,12 +44,12 @@ import org.jetbrains.kotlin.ir.visitors.IrElementTransformer * finally {} */ -class MultipleCatchesLowering(private val context: JsIrBackendContext) : FileLoweringPass { +class MultipleCatchesLowering(private val context: JsIrBackendContext) : BodyLoweringPass { private val litTrue get() = JsIrBuilder.buildBoolean(context.irBuiltIns.booleanType, true) private val nothingType = context.irBuiltIns.nothingType - override fun lower(irFile: IrFile) { - irFile.transformChildren(object : IrElementTransformer { + override fun lower(irBody: IrBody, container: IrDeclaration) { + irBody.transform(object : IrElementTransformer { override fun visitDeclaration(declaration: IrDeclaration, data: IrDeclarationParent): IrStatement { val parent = (declaration as? IrDeclarationParent) ?: data @@ -117,6 +116,6 @@ class MultipleCatchesLowering(private val context: JsIrBackendContext) : FileLow private fun buildImplicitCast(value: IrExpression, toType: IrType) = JsIrBuilder.buildTypeOperator(toType, IrTypeOperator.IMPLICIT_CAST, value, toType) - }, irFile) + }, container as? IrDeclarationParent ?: container.parent) } } \ No newline at end of file