From 91ea3738b4ad6289bbaadd2dd67a348d9640b03a Mon Sep 17 00:00:00 2001 From: Svyatoslav Kuzmich Date: Thu, 11 Nov 2021 17:06:29 +0300 Subject: [PATCH] [Wasm] Fix type parameters with external upper-bounds. `klass.isExternal` was never reachable for type parameters because of klass != null check --- .../kotlin/backend/wasm/ir2wasm/TypeTransformer.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/TypeTransformer.kt b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/TypeTransformer.kt index fb242be2d45..2167e4750b1 100644 --- a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/TypeTransformer.kt +++ b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/TypeTransformer.kt @@ -96,12 +96,12 @@ class WasmTypeTransformer( error("Void type can't be used as a value") else -> { - val klass = this.getClass() + val klass = this.erasedUpperBound ?: builtIns.anyClass.owner val ic = context.backendContext.inlineClassesUtils.getInlinedClass(this) - if (klass != null && klass.isExternal) { + if (klass.isExternal) { WasmAnyRef - } else if (klass != null && isBuiltInWasmRefType(this)) { + } else if (isBuiltInWasmRefType(this)) { when (val name = klass.name.identifier) { "anyref" -> WasmAnyRef "eqref" -> WasmEqRef