Fix project compilation after fix for KT-35920

See KT-35931 for a feature request allowing to write IrConstImpl::int
This commit is contained in:
Denis Zharkov
2020-01-15 12:24:06 +03:00
parent d4c34afb94
commit bcad6aeda6
@@ -40,17 +40,17 @@ class ConstTransformer(private val context: JsIrBackendContext) : IrElementTrans
}
private fun createLong(v: Long): IrExpression =
lowerConst(context.intrinsics.longClassSymbol, IrConstImpl<*>::int, v.toInt(), (v shr 32).toInt())
lowerConst(context.intrinsics.longClassSymbol, IrConstImpl.Companion::int, v.toInt(), (v shr 32).toInt())
override fun <T> visitConst(expression: IrConst<T>): IrExpression {
with(context.intrinsics) {
if (expression.type.isUnsigned()) {
return when (expression.type.classifierOrNull) {
uByteClassSymbol -> lowerConst(uByteClassSymbol, IrConstImpl<*>::byte, IrConstKind.Byte.valueOf(expression))
uByteClassSymbol -> lowerConst(uByteClassSymbol, IrConstImpl.Companion::byte, IrConstKind.Byte.valueOf(expression))
uShortClassSymbol -> lowerConst(uShortClassSymbol, IrConstImpl<*>::short, IrConstKind.Short.valueOf(expression))
uShortClassSymbol -> lowerConst(uShortClassSymbol, IrConstImpl.Companion::short, IrConstKind.Short.valueOf(expression))
uIntClassSymbol -> lowerConst(uIntClassSymbol, IrConstImpl<*>::int, IrConstKind.Int.valueOf(expression))
uIntClassSymbol -> lowerConst(uIntClassSymbol, IrConstImpl.Companion::int, IrConstKind.Int.valueOf(expression))
uLongClassSymbol -> lowerConst(uLongClassSymbol, { _, _, _, v -> createLong(v) }, IrConstKind.Long.valueOf(expression))
@@ -59,7 +59,7 @@ class ConstTransformer(private val context: JsIrBackendContext) : IrElementTrans
}
return when {
expression.kind is IrConstKind.Char ->
lowerConst(charClassSymbol, IrConstImpl<*>::int, IrConstKind.Char.valueOf(expression).toInt())
lowerConst(charClassSymbol, IrConstImpl.Companion::int, IrConstKind.Char.valueOf(expression).toInt())
expression.kind is IrConstKind.Long ->
createLong(IrConstKind.Long.valueOf(expression))
@@ -74,4 +74,4 @@ class ConstLowering(private val context: JsIrBackendContext) : FileLoweringPass
override fun lower(irFile: IrFile) {
irFile.transformChildrenVoid(ConstTransformer(context))
}
}
}