[JS IR BE] Use constructor parameter to determine underlying type for inline classes

Inline classes from lazy IR may not have files.
This commit is contained in:
Svyatoslav Kuzmich
2019-04-17 19:03:07 +03:00
parent 3fd55673a8
commit 889b4d721d
2 changed files with 15 additions and 8 deletions
@@ -20,10 +20,7 @@ import org.jetbrains.kotlin.ir.expressions.impl.IrVarargImpl
import org.jetbrains.kotlin.ir.types.IrType
import org.jetbrains.kotlin.ir.types.classifierOrNull
import org.jetbrains.kotlin.ir.types.impl.IrSimpleTypeImpl
import org.jetbrains.kotlin.ir.util.constructors
import org.jetbrains.kotlin.ir.util.defaultType
import org.jetbrains.kotlin.ir.util.getInlineClassBackingField
import org.jetbrains.kotlin.ir.util.getInlinedClass
import org.jetbrains.kotlin.ir.util.*
import org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid
import org.jetbrains.kotlin.ir.visitors.transformChildrenVoid
@@ -86,8 +83,8 @@ private class VarargTransformer(
val needUnboxing: Boolean
val arrayInlineClass = expression.type.getInlinedClass()
if (arrayInlineClass != null) {
primitiveElementType = getInlineClassBackingField(elementType.getInlinedClass()!!).type
primitiveExpressionType = getInlineClassBackingField(arrayInlineClass).type
primitiveElementType = getInlineClassUnderlyingType(elementType.getInlinedClass()!!)
primitiveExpressionType = getInlineClassUnderlyingType(arrayInlineClass)
needUnboxing = true
} else {
primitiveElementType = elementType