[Wasm] Fix invalid cast generation for inline classes
This commit is contained in:
-9
@@ -11,7 +11,6 @@ import org.jetbrains.kotlin.backend.common.lower.AbstractValueUsageTransformer
|
||||
import org.jetbrains.kotlin.backend.common.pop
|
||||
import org.jetbrains.kotlin.backend.common.push
|
||||
import org.jetbrains.kotlin.ir.IrBuiltIns
|
||||
import org.jetbrains.kotlin.ir.IrStatement
|
||||
import org.jetbrains.kotlin.ir.backend.js.JsCommonBackendContext
|
||||
import org.jetbrains.kotlin.ir.backend.js.ir.JsIrBuilder
|
||||
import org.jetbrains.kotlin.ir.backend.js.utils.realOverrideTarget
|
||||
@@ -136,14 +135,6 @@ class AutoboxingTransformer(context: JsCommonBackendContext) : AbstractValueUsag
|
||||
return res
|
||||
}
|
||||
|
||||
override fun visitFunction(declaration: IrFunction): IrStatement {
|
||||
return super.visitFunction(declaration)
|
||||
}
|
||||
|
||||
override fun visitVararg(expression: IrVararg): IrExpression {
|
||||
return super.visitVararg(expression)
|
||||
}
|
||||
|
||||
override fun IrExpression.useAsResult(enclosing: IrExpression): IrExpression {
|
||||
if (processingReturnStack.lastOrNull()?.value == enclosing && enclosing is IrReturnableBlock) {
|
||||
return useReturnableExpressionAsType(enclosing.type)
|
||||
|
||||
+5
-1
@@ -739,7 +739,11 @@ class BodyGenerator(
|
||||
|
||||
// REF -> REF -> REF_CAST
|
||||
if (!expectedIsPrimitive) {
|
||||
generateRefNullCast(actualTypeErased, expectedTypeErased)
|
||||
if (expectedClassErased.isSubclassOf(actualClassErased)) {
|
||||
generateRefNullCast(actualTypeErased, expectedTypeErased)
|
||||
} else {
|
||||
body.buildUnreachable()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user