[JS IR BE] unsigned literal support
This commit is contained in:
@@ -148,8 +148,8 @@ class JsIntrinsics(private val irBuiltIns: IrBuiltIns, val context: JsIrBackendC
|
||||
val jsNumberRangeToNumber = getInternalFunction("numberRangeToNumber")
|
||||
val jsNumberRangeToLong = getInternalFunction("numberRangeToLong")
|
||||
|
||||
val longConstructor =
|
||||
context.symbolTable.referenceConstructor(context.getClass(FqName("kotlin.Long")).constructors.single())
|
||||
val longClassSymbol = getInternalClassWithoutPackage("kotlin.Long")
|
||||
|
||||
val longToDouble = context.symbolTable.referenceSimpleFunction(
|
||||
context.getClass(FqName("kotlin.Long")).unsubstitutedMemberScope.findSingleFunction(
|
||||
Name.identifier("toDouble")
|
||||
@@ -161,7 +161,12 @@ class JsIntrinsics(private val irBuiltIns: IrBuiltIns, val context: JsIrBackendC
|
||||
)
|
||||
)
|
||||
|
||||
val charConstructor = context.symbolTable.referenceConstructor(context.getClass(KotlinBuiltIns.FQ_NAMES._char.toSafe()).constructors.single())
|
||||
val charClassSymbol = getInternalClassWithoutPackage("kotlin.Char")
|
||||
|
||||
val uByteClassSymbol = getInternalClassWithoutPackage("kotlin.UByte")
|
||||
val uShortClassSymbol = getInternalClassWithoutPackage("kotlin.UShort")
|
||||
val uIntClassSymbol = getInternalClassWithoutPackage("kotlin.UInt")
|
||||
val uLongClassSymbol = getInternalClassWithoutPackage("kotlin.ULong")
|
||||
|
||||
val unreachable = defineUnreachableIntrinsic()
|
||||
|
||||
@@ -222,6 +227,9 @@ class JsIntrinsics(private val irBuiltIns: IrBuiltIns, val context: JsIrBackendC
|
||||
private fun getInternalWithoutPackage(name: String) =
|
||||
context.symbolTable.referenceSimpleFunction(context.getFunctions(FqName(name)).single())
|
||||
|
||||
private fun getInternalClassWithoutPackage(fqName: String) =
|
||||
context.symbolTable.referenceClass(context.getClass(FqName(fqName)))
|
||||
|
||||
// TODO: unify how we create intrinsic symbols
|
||||
private fun defineObjectCreateIntrinsic() =
|
||||
JsIrBuilder.buildFunction("Object\$create", isInline = true, origin = JsLoweredDeclarationOrigin.JS_INTRINSICS_STUB).also {
|
||||
|
||||
+38
-37
@@ -23,6 +23,7 @@ import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction
|
||||
import org.jetbrains.kotlin.ir.declarations.*
|
||||
import org.jetbrains.kotlin.ir.expressions.*
|
||||
import org.jetbrains.kotlin.ir.expressions.impl.IrCallImpl
|
||||
import org.jetbrains.kotlin.ir.expressions.impl.IrConstImpl
|
||||
import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
|
||||
import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol
|
||||
import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol
|
||||
@@ -189,18 +190,13 @@ class IntrinsicifyCallsLowering(private val context: JsIrBackendContext) : FileL
|
||||
|
||||
for (type in arrayOf(irBuiltIns.byteType, irBuiltIns.intType)) {
|
||||
op(type, ConversionNames.TO_CHAR) {
|
||||
irCall(it, intrinsics.charConstructor, dispatchReceiverAsFirstArgument = true)
|
||||
irCall(it, intrinsics.charClassSymbol.constructors.single(), dispatchReceiverAsFirstArgument = true)
|
||||
}
|
||||
}
|
||||
|
||||
for (type in arrayOf(irBuiltIns.floatType, irBuiltIns.doubleType)) {
|
||||
op(type, ConversionNames.TO_CHAR) {
|
||||
IrCallImpl(
|
||||
it.startOffset,
|
||||
it.endOffset,
|
||||
irBuiltIns.charType,
|
||||
intrinsics.charConstructor
|
||||
).apply {
|
||||
JsIrBuilder.buildCall(intrinsics.charClassSymbol.constructors.single()).apply {
|
||||
putValueArgument(0, irCall(it, intrinsics.jsNumberToInt, dispatchReceiverAsFirstArgument = true))
|
||||
}
|
||||
}
|
||||
@@ -306,42 +302,47 @@ class IntrinsicifyCallsLowering(private val context: JsIrBackendContext) : FileL
|
||||
}
|
||||
}
|
||||
|
||||
private fun lowerLongConst(value: Long, startOffset: Int = UNDEFINED_OFFSET, endOffset: Int = UNDEFINED_OFFSET): IrExpression {
|
||||
val high = (value shr 32).toInt()
|
||||
val low = value.toInt()
|
||||
return IrCallImpl(
|
||||
startOffset,
|
||||
endOffset,
|
||||
irBuiltIns.longType,
|
||||
context.intrinsics.longConstructor
|
||||
).apply {
|
||||
putValueArgument(0, JsIrBuilder.buildInt(context.irBuiltIns.intType, low))
|
||||
putValueArgument(1, JsIrBuilder.buildInt(context.irBuiltIns.intType, high))
|
||||
}
|
||||
}
|
||||
|
||||
private fun lowerCharConst(value: Char, startOffset: Int = UNDEFINED_OFFSET, endOffset: Int = UNDEFINED_OFFSET): IrExpression {
|
||||
return IrCallImpl(
|
||||
startOffset,
|
||||
endOffset,
|
||||
irBuiltIns.charType,
|
||||
context.intrinsics.charConstructor
|
||||
).apply {
|
||||
putValueArgument(0, JsIrBuilder.buildInt(context.irBuiltIns.intType, value.toInt()))
|
||||
}
|
||||
}
|
||||
|
||||
override fun lower(irFile: IrFile) {
|
||||
irFile.transform(object : IrElementTransformerVoid() {
|
||||
private fun <C> lowerConst(
|
||||
irClass: IrClassSymbol,
|
||||
carrierFactory: (Int, Int, IrType, C) -> IrExpression,
|
||||
vararg args: C
|
||||
): IrExpression {
|
||||
val constructor = irClass.constructors.single()
|
||||
val argType = constructor.owner.valueParameters.first().type
|
||||
return JsIrBuilder.buildCall(constructor).apply {
|
||||
for (i in args.indices) {
|
||||
putValueArgument(i, carrierFactory(UNDEFINED_OFFSET, UNDEFINED_OFFSET, argType, args[i]))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun createLong(v: Long): IrExpression = lowerConst(context.intrinsics.longClassSymbol, IrConstImpl<*>::int, v.toInt(), (v shr 32).toInt())
|
||||
|
||||
// TODO should this be a separate lowering?
|
||||
override fun <T> visitConst(expression: IrConst<T>): IrExpression {
|
||||
if (expression.kind is IrConstKind.Long) {
|
||||
return lowerLongConst(IrConstKind.Long.valueOf(expression), expression.startOffset, expression.endOffset)
|
||||
} else if (expression.kind is IrConstKind.Char) {
|
||||
return lowerCharConst(IrConstKind.Char.valueOf(expression), expression.startOffset, expression.endOffset)
|
||||
with(context.intrinsics) {
|
||||
return when (expression.type.classifierOrNull) {
|
||||
uByteClassSymbol -> lowerConst(uByteClassSymbol, IrConstImpl<*>::byte, IrConstKind.Byte.valueOf(expression))
|
||||
|
||||
uShortClassSymbol -> lowerConst(uShortClassSymbol, IrConstImpl<*>::short, IrConstKind.Short.valueOf(expression))
|
||||
|
||||
uIntClassSymbol -> lowerConst(uIntClassSymbol, IrConstImpl<*>::int, IrConstKind.Int.valueOf(expression))
|
||||
|
||||
uLongClassSymbol -> lowerConst(uLongClassSymbol, { _, _, _, v -> createLong(v) }, IrConstKind.Long.valueOf(expression))
|
||||
|
||||
else -> when {
|
||||
expression.kind is IrConstKind.Char ->
|
||||
lowerConst(charClassSymbol, IrConstImpl<*>::int, IrConstKind.Char.valueOf(expression).toInt())
|
||||
|
||||
expression.kind is IrConstKind.Long ->
|
||||
createLong(IrConstKind.Long.valueOf(expression))
|
||||
|
||||
else -> super.visitConst(expression)
|
||||
}
|
||||
}
|
||||
}
|
||||
return super.visitConst(expression)
|
||||
}
|
||||
|
||||
override fun visitCall(expression: IrCall): IrExpression {
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
// WITH_UNSIGNED
|
||||
// IGNORE_BACKEND: JVM_IR, JS_IR
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
val xs = Array(2) { 42u }
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// Auto-generated by org.jetbrains.kotlin.generators.tests.GenerateRangesCodegenTestData. DO NOT EDIT!
|
||||
// WITH_RUNTIME
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// Auto-generated by org.jetbrains.kotlin.generators.tests.GenerateRangesCodegenTestData. DO NOT EDIT!
|
||||
// WITH_RUNTIME
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
-3
@@ -1,6 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
-2
@@ -1,5 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
-3
@@ -1,6 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
-3
@@ -1,6 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
-3
@@ -1,6 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
+3
-3
@@ -1,9 +1,9 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// Auto-generated by org.jetbrains.kotlin.generators.tests.GenerateRangesCodegenTestData. DO NOT EDIT!
|
||||
// WITH_RUNTIME
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// Auto-generated by org.jetbrains.kotlin.generators.tests.GenerateRangesCodegenTestData. DO NOT EDIT!
|
||||
// WITH_RUNTIME
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// Auto-generated by org.jetbrains.kotlin.generators.tests.GenerateRangesCodegenTestData. DO NOT EDIT!
|
||||
// WITH_RUNTIME
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
-3
@@ -1,6 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
+3
-3
@@ -1,9 +1,9 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// Auto-generated by org.jetbrains.kotlin.generators.tests.GenerateRangesCodegenTestData. DO NOT EDIT!
|
||||
// WITH_RUNTIME
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
// TODO: muted automatically, investigate should it be ran for JS_IR or not
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
// TODO: muted automatically, investigate should it be ran for JVM_IR or not
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// WITH_UNSIGNED
|
||||
// IGNORE_BACKEND: JVM_IR, JS_IR
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
const val maxUByte: UByte = 0xFFu
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// WITH_UNSIGNED
|
||||
// IGNORE_BACKEND: JVM_IR, JS_IR
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
fun box(): String {
|
||||
val good = 42.toUInt()
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// IGNORE_BACKEND: JVM_IR, JS_IR
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
// WITH_UNSIGNED
|
||||
|
||||
fun box(): String {
|
||||
|
||||
-1
@@ -1,6 +1,5 @@
|
||||
// WITH_UNSIGNED
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
|
||||
fun box(): String {
|
||||
var sum = 0u
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
// WITH_UNSIGNED
|
||||
// IGNORE_BACKEND: JVM_IR, JS_IR
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
import kotlin.reflect.KProperty
|
||||
import kotlin.reflect.KProperty0
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
// WITH_UNSIGNED
|
||||
// IGNORE_BACKEND: JVM_IR, JS_IR
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
fun box(): String {
|
||||
val maxULong = 0xFFFF_FFFF_FFFF_FFFFuL
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
// WITH_UNSIGNED
|
||||
// IGNORE_BACKEND: JVM_IR, JS_IR
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
fun box(): String {
|
||||
val u1: UByte = 255u
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
// WITH_UNSIGNED
|
||||
// IGNORE_BACKEND: JS_IR, JVM_IR
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
fun prefixDecrementUByteLocal(): Any? {
|
||||
var a: UByte = 0u
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
// WITH_UNSIGNED
|
||||
// IGNORE_BACKEND: JVM_IR, JS_IR
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
const val MAX_BYTE: UByte = 0xFFu
|
||||
const val HUNDRED: UByte = 100u
|
||||
|
||||
+8
-2
@@ -121,6 +121,10 @@ public class GenerateRangesCodegenTestData {
|
||||
|
||||
private static final List<String> IGNORED_FOR_JS_BACKEND = Collections.emptyList();
|
||||
|
||||
private static final List<String> IGNORED_FOR_JS_IR_BACKEND = Arrays.asList("inexactDownToMinValue.kt",
|
||||
"inexactToMaxValue.kt",
|
||||
"simpleRangeWithNonConstantEnds.kt");
|
||||
|
||||
private static final List<String> IGNORED_FOR_NATIVE_BACKEND = Collections.emptyList();
|
||||
|
||||
private static void writeIgnoreBackendDirective(PrintWriter out, String backendName) {
|
||||
@@ -138,13 +142,15 @@ public class GenerateRangesCodegenTestData {
|
||||
throw new AssertionError(e);
|
||||
}
|
||||
|
||||
// Ranges are not supported in JS_IR, JVM_IR yet
|
||||
writeIgnoreBackendDirective(out, "JS_IR");
|
||||
// Ranges are not supported in JVM_IR yet
|
||||
writeIgnoreBackendDirective(out, "JVM_IR");
|
||||
|
||||
if (IGNORED_FOR_JS_BACKEND.contains(file.getName())) {
|
||||
writeIgnoreBackendDirective(out, "JS");
|
||||
}
|
||||
if (IGNORED_FOR_JS_IR_BACKEND.contains(file.getName())) {
|
||||
writeIgnoreBackendDirective(out, "JS_IR");
|
||||
}
|
||||
if (IGNORED_FOR_NATIVE_BACKEND.contains(file.getName())) {
|
||||
writeIgnoreBackendDirective(out, "NATIVE");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user