Treat number with unsigned literal as UByte & UShort & UInt & ULong

This commit is contained in:
Mikhail Zarechenskiy
2018-05-28 10:54:09 +03:00
parent 656f6cbded
commit 7d5fdb660d
15 changed files with 217 additions and 75 deletions
@@ -0,0 +1,16 @@
// !LANGUAGE: +InlineClasses
// !SKIP_METADATA_VERSION_CHECK
// WITH_UNSIGNED
fun box(): String {
val u1 = 1u
val u2 = 2u
val u3 = u1 + u2
if (u3.toInt() != 3) return "fail"
val max = 0u.dec().toLong()
val expected = Int.MAX_VALUE * 2L + 1
if (max != expected) return "fail"
return "OK"
}
@@ -1,11 +0,0 @@
// !LANGUAGE: +InlineClasses
// !SKIP_METADATA_VERSION_CHECK
// WITH_UNSIGNED
@Suppress("INVISIBLE_MEMBER")
fun box(): String {
val u1 = UInt(1)
val u2 = UInt(2)
val u3 = u1 + u2
return if (u3.toInt() == 3) "OK" else "fail"
}