From 489ba508c3d1817e531af7558054734a92d42cfb Mon Sep 17 00:00:00 2001 From: Anton Bannykh Date: Tue, 24 Dec 2019 22:07:41 +0300 Subject: [PATCH] TypeOperatorLowering --- .../ir/backend/js/lower/TypeOperatorLowering.kt | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/TypeOperatorLowering.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/TypeOperatorLowering.kt index e616b9b546c..3ea29aa4fec 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/TypeOperatorLowering.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/TypeOperatorLowering.kt @@ -5,7 +5,7 @@ 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.JsIrArithBuilder @@ -14,11 +14,7 @@ import org.jetbrains.kotlin.ir.backend.js.utils.isPure import org.jetbrains.kotlin.ir.declarations.IrClass 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.IrExpression -import org.jetbrains.kotlin.ir.expressions.IrExpressionWithCopy -import org.jetbrains.kotlin.ir.expressions.IrTypeOperator -import org.jetbrains.kotlin.ir.expressions.IrTypeOperatorCall +import org.jetbrains.kotlin.ir.expressions.* import org.jetbrains.kotlin.ir.expressions.impl.IrCompositeImpl import org.jetbrains.kotlin.ir.expressions.impl.IrTypeOperatorCallImpl import org.jetbrains.kotlin.ir.symbols.IrClassSymbol @@ -27,7 +23,7 @@ import org.jetbrains.kotlin.ir.types.* import org.jetbrains.kotlin.ir.util.* import org.jetbrains.kotlin.ir.visitors.IrElementTransformer -class TypeOperatorLowering(val context: JsIrBackendContext) : FileLoweringPass { +class TypeOperatorLowering(val context: JsIrBackendContext) : BodyLoweringPass { private val unit = context.irBuiltIns.unitType private val unitValue get() = JsIrBuilder.buildGetObjectValue(unit, unit.classifierOrFail as IrClassSymbol) @@ -66,8 +62,8 @@ class TypeOperatorLowering(val context: JsIrBackendContext) : FileLoweringPass { private val litFalse: IrExpression get() = JsIrBuilder.buildBoolean(context.irBuiltIns.booleanType, false) private val litNull: IrExpression get() = JsIrBuilder.buildNull(context.irBuiltIns.nothingNType) - override fun lower(irFile: IrFile) { - irFile.transformChildren(object : IrElementTransformer { + override fun lower(irBody: IrBody, container: IrDeclaration) { + irBody.transformChildren(object : IrElementTransformer { override fun visitDeclaration(declaration: IrDeclaration, data: IrDeclarationParent) = super.visitDeclaration(declaration, declaration as? IrDeclarationParent ?: data) @@ -375,6 +371,6 @@ class TypeOperatorLowering(val context: JsIrBackendContext) : FileLoweringPass { return expression.run { IrCompositeImpl(startOffset, endOffset, toType, null, newStatements) } } - }, irFile) + }, container as? IrDeclarationParent ?: container.parent) } } \ No newline at end of file