From 3e6f153fe55024ca774432e3471fd0b5f12cbfc7 Mon Sep 17 00:00:00 2001 From: Igor Yakovlev Date: Sat, 10 Sep 2022 16:01:12 +0200 Subject: [PATCH] [WASM] Fix dce type removal for local variables --- .../backend/wasm/dce/WasmUsefulDeclarationProcessor.kt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/dce/WasmUsefulDeclarationProcessor.kt b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/dce/WasmUsefulDeclarationProcessor.kt index 8b206e43aef..5777d45ba66 100644 --- a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/dce/WasmUsefulDeclarationProcessor.kt +++ b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/dce/WasmUsefulDeclarationProcessor.kt @@ -32,6 +32,11 @@ internal class WasmUsefulDeclarationProcessor( else -> Unit } + override fun visitVariable(declaration: IrVariable, data: IrDeclaration) { + declaration.type.enqueueType(data, "local variable type") + super.visitVariable(declaration, data) + } + private fun tryToProcessIntrinsicCall(from: IrDeclaration, call: IrCall): Boolean = when (call.symbol) { context.wasmSymbols.unboxIntrinsic -> { val fromType = call.getTypeArgument(0)