From feeb6e9862ad977d470603590a906840764095ce Mon Sep 17 00:00:00 2001 From: Svyatoslav Kuzmich Date: Sat, 4 May 2019 21:55:31 +0300 Subject: [PATCH] [JS IR BE] Fix type for lowered cast expression Safe cast result type is different from its type operand. --- .../kotlin/ir/backend/js/lower/TypeOperatorLowering.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 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 67c4b095114..c07e9e014c9 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 @@ -109,10 +109,10 @@ class TypeOperatorLowering(val context: JsIrBackendContext) : FileLoweringPass { val argument = cacheValue(expression.argument, newStatements, declaration) val check = generateTypeCheck(argument, toType) - newStatements += JsIrBuilder.buildIfElse(toType, check, argument(), failResult) + newStatements += JsIrBuilder.buildIfElse(expression.type, check, argument(), failResult) return expression.run { - IrCompositeImpl(startOffset, endOffset, toType, null, newStatements) + IrCompositeImpl(startOffset, endOffset, expression.type, null, newStatements) } }