diff --git a/compiler/testData/codegen/box/unsignedTypes/signedToUnsignedLiteralConversion.kt b/compiler/testData/codegen/box/unsignedTypes/signedToUnsignedLiteralConversion.kt deleted file mode 100644 index 09df90f7c4e..00000000000 --- a/compiler/testData/codegen/box/unsignedTypes/signedToUnsignedLiteralConversion.kt +++ /dev/null @@ -1,27 +0,0 @@ -// WITH_RUNTIME -// TARGET_BACKEND: NATIVE -// IGNORE_BACKEND: JVM_IR -// IGNORE_BACKEND: JS_IR - -@file:Suppress("SIGNED_CONSTANT_CONVERTED_TO_UNSIGNED") - -fun takeUByte(u: UByte) = u.toByte() -fun takeUShort(u: UShort) = u.toShort() -fun takeUInt(u: UInt) = u.toInt() -fun takeULong(u: ULong) = u.toLong() - -fun box(): String { - val b = takeUByte(200 + 55) - if (b != (-1).toByte()) return "Fail 1: $b" - - val s = takeUShort(123) - if (s != 123.toShort()) return "Fail 2: $s" - - val i = takeUInt(0xFFFF_FFFF) - if (i != -1) return "Fail 3: $i" - - val l = takeULong(0xFFFF_FFFF_FFFF) - if (l != 0xFFFF_FFFF_FFFFL) return "Fail 4: $l" - - return "OK" -} diff --git a/compiler/testData/codegen/box/unsignedTypes/unsignedToSignedConversion.kt b/compiler/testData/codegen/box/unsignedTypes/unsignedToSignedConversion.kt new file mode 100644 index 00000000000..a21c88ed239 --- /dev/null +++ b/compiler/testData/codegen/box/unsignedTypes/unsignedToSignedConversion.kt @@ -0,0 +1,36 @@ +// WITH_RUNTIME +// IGNORE_BACKEND: JS_IR +// IGNORE_BACKEND_FIR: JVM_IR + +fun takeUByte(u: UByte) = u.toByte() +fun takeUShort(u: UShort) = u.toShort() +fun takeUInt(u: UInt) = u.toInt() +fun takeULong(u: ULong) = u.toLong() + +fun box(): String { + val b1 = takeUByte(127u) + if (b1 != 127.toByte()) return "Fail byte: $b1" + + val b2 = takeUByte(255u) + if (b2 != (-1).toByte()) return "Fail byte negative: $b2" + + val s1 = takeUShort(0x7FFFu) + if (s1 != 0x7FFF.toShort()) return "Fail short: $s1" + + val s2 = takeUShort(0xFFFFu) + if (s2 != (-1).toShort()) return "Fail short negative: $s2" + + val i1 = takeUInt(0x7FFF_FFFFu) + if (i1 != 0x7FFF_FFFF) return "Fail int: $i1" + + val i2 = takeUInt(0xFFFF_FFFFu) + if (i2 != -1) return "Fail int negative: $i2" + + val l1 = takeULong(0x7FFF_FFFF_FFFF_FFFFu) + if (l1 != 0x7FFF_FFFF_FFFF_FFFF) return "Fail long: $l1" + + val l2 = takeULong(0xFFFF_FFFF_FFFF_FFFFu) + if (l2 != (-1).toLong()) return "Fail long negative: $l2" + + return "OK" +} diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java index e58979ea11f..6432c3a569e 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java @@ -27756,6 +27756,11 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { runTest("compiler/testData/codegen/box/unsignedTypes/unsignedRangeIterator.kt"); } + @TestMetadata("unsignedToSignedConversion.kt") + public void testUnsignedToSignedConversion() throws Exception { + runTest("compiler/testData/codegen/box/unsignedTypes/unsignedToSignedConversion.kt"); + } + @TestMetadata("unsignedTypePrefixIncrementDecrementBoxing.kt") public void testUnsignedTypePrefixIncrementDecrementBoxing() throws Exception { runTest("compiler/testData/codegen/box/unsignedTypes/unsignedTypePrefixIncrementDecrementBoxing.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java index 7f9bda635f5..8388dfa6785 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -26573,6 +26573,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes runTest("compiler/testData/codegen/box/unsignedTypes/unsignedRangeIterator.kt"); } + @TestMetadata("unsignedToSignedConversion.kt") + public void testUnsignedToSignedConversion() throws Exception { + runTest("compiler/testData/codegen/box/unsignedTypes/unsignedToSignedConversion.kt"); + } + @TestMetadata("unsignedTypePrefixIncrementDecrementBoxing.kt") public void testUnsignedTypePrefixIncrementDecrementBoxing() throws Exception { runTest("compiler/testData/codegen/box/unsignedTypes/unsignedTypePrefixIncrementDecrementBoxing.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java index 5698ea5776a..99ae27f3955 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java @@ -26260,6 +26260,11 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT runTest("compiler/testData/codegen/box/unsignedTypes/unsignedRangeIterator.kt"); } + @TestMetadata("unsignedToSignedConversion.kt") + public void testUnsignedToSignedConversion() throws Exception { + runTest("compiler/testData/codegen/box/unsignedTypes/unsignedToSignedConversion.kt"); + } + @TestMetadata("unsignedTypePrefixIncrementDecrementBoxing.kt") public void testUnsignedTypePrefixIncrementDecrementBoxing() throws Exception { runTest("compiler/testData/codegen/box/unsignedTypes/unsignedTypePrefixIncrementDecrementBoxing.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java index 5320ace7ca8..8248ae085f2 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java @@ -26260,6 +26260,11 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes runTest("compiler/testData/codegen/box/unsignedTypes/unsignedRangeIterator.kt"); } + @TestMetadata("unsignedToSignedConversion.kt") + public void testUnsignedToSignedConversion() throws Exception { + runTest("compiler/testData/codegen/box/unsignedTypes/unsignedToSignedConversion.kt"); + } + @TestMetadata("unsignedTypePrefixIncrementDecrementBoxing.kt") public void testUnsignedTypePrefixIncrementDecrementBoxing() throws Exception { runTest("compiler/testData/codegen/box/unsignedTypes/unsignedTypePrefixIncrementDecrementBoxing.kt"); diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java index cb935863069..19d1115da4e 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java @@ -21641,6 +21641,11 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest { runTest("compiler/testData/codegen/box/unsignedTypes/unsignedRangeIterator.kt"); } + @TestMetadata("unsignedToSignedConversion.kt") + public void testUnsignedToSignedConversion() throws Exception { + runTest("compiler/testData/codegen/box/unsignedTypes/unsignedToSignedConversion.kt"); + } + @TestMetadata("unsignedTypePrefixIncrementDecrementBoxing.kt") public void testUnsignedTypePrefixIncrementDecrementBoxing() throws Exception { runTest("compiler/testData/codegen/box/unsignedTypes/unsignedTypePrefixIncrementDecrementBoxing.kt"); diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java index 9330cc95bc2..6607c75b072 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java @@ -22771,6 +22771,11 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest { runTest("compiler/testData/codegen/box/unsignedTypes/unsignedRangeIterator.kt"); } + @TestMetadata("unsignedToSignedConversion.kt") + public void testUnsignedToSignedConversion() throws Exception { + runTest("compiler/testData/codegen/box/unsignedTypes/unsignedToSignedConversion.kt"); + } + @TestMetadata("unsignedTypePrefixIncrementDecrementBoxing.kt") public void testUnsignedTypePrefixIncrementDecrementBoxing() throws Exception { runTest("compiler/testData/codegen/box/unsignedTypes/unsignedTypePrefixIncrementDecrementBoxing.kt");