[JS IR] Treat char as inline class no matter how it's declared
This commit is contained in:
+5
-1
@@ -9,6 +9,7 @@ import org.jetbrains.kotlin.ir.backend.js.JsCommonInlineClassesUtils
|
||||
import org.jetbrains.kotlin.ir.backend.js.JsIrBackendContext
|
||||
import org.jetbrains.kotlin.ir.declarations.IrClass
|
||||
import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol
|
||||
import org.jetbrains.kotlin.ir.types.IdSignatureValues
|
||||
import org.jetbrains.kotlin.ir.types.IrSimpleType
|
||||
import org.jetbrains.kotlin.ir.types.IrType
|
||||
import org.jetbrains.kotlin.ir.types.isMarkedNullable
|
||||
@@ -38,8 +39,11 @@ class JsInlineClassesUtils(val context: JsIrBackendContext) : JsCommonInlineClas
|
||||
return null
|
||||
}
|
||||
|
||||
// Char is declared as a regular class, but we want to treat it as an inline class.
|
||||
// We can't declare it as an inline/value class for compatibility reasons.
|
||||
// For example, applying the === operator will stop working if Char becomes an inline class.
|
||||
override fun isClassInlineLike(klass: IrClass): Boolean =
|
||||
klass.isInline
|
||||
super.isClassInlineLike(klass) || klass.symbol.signature == IdSignatureValues._char
|
||||
|
||||
override val boxIntrinsic: IrSimpleFunctionSymbol
|
||||
get() = context.intrinsics.jsBoxIntrinsic
|
||||
|
||||
Reference in New Issue
Block a user