Introduce uL/UL suffix to represent numbers of unsigned long type

#KT-24663 Fixed
This commit is contained in:
Mikhail Zarechenskiy
2018-06-26 15:38:24 +03:00
parent 7c44992016
commit a765ee41d7
16 changed files with 406 additions and 307 deletions
@@ -0,0 +1,18 @@
// !LANGUAGE: +InlineClasses
// !SKIP_METADATA_VERSION_CHECK
// !DIAGNOSTICS: -UNUSED_PARAMETER
val a0: Int = <!CONSTANT_EXPECTED_TYPE_MISMATCH!>1uL<!>
val a1: UInt = <!CONSTANT_EXPECTED_TYPE_MISMATCH!>1uL<!>
val a3: ULong = 1uL
val a4 = 1UL + 2UL
val a5 = <!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>-<!>1UL
fun takeULong(u: ULong) {}
fun test() {
takeULong(3UL)
takeULong(1UL + 3uL)
takeULong(1u + 0uL)
takeULong(1uL + 4u)
}
@@ -0,0 +1,9 @@
package
public val a0: kotlin.Int = 1.toULong()
public val a1: kotlin.UInt = 1.toULong()
public val a3: kotlin.ULong = 1.toULong()
public val a4: kotlin.ULong
public val a5: [ERROR : Type for -1UL]
public fun takeULong(/*0*/ u: kotlin.ULong): kotlin.Unit
public fun test(): kotlin.Unit
@@ -9,3 +9,8 @@ const val u4: ULong = 4u
const val u5 = 1U
const val u6: UByte = 0xFFU
const val u7 = 1uL
const val u8 = 1UL
const val u9 = 1UL
const val u10 = 0xFFFF_FFFF_FFFFuL
@@ -2,8 +2,12 @@ package
public const val u0: kotlin.UInt = 1.toUInt()
public const val u1: kotlin.UByte = 2.toUByte()
public const val u10: kotlin.ULong = 281474976710655.toULong()
public const val u2: kotlin.UShort = 3.toUShort()
public const val u3: kotlin.UInt = 3.toUInt()
public const val u4: kotlin.ULong = 4.toULong()
public const val u5: kotlin.UInt = 1.toUInt()
public const val u6: kotlin.UByte = -1.toUByte()
public const val u7: kotlin.ULong = 1.toULong()
public const val u8: kotlin.ULong = 1.toULong()
public const val u9: kotlin.ULong = 1.toULong()
@@ -13,6 +13,8 @@ const val u7 = 18446744073709551615u
val u8: Comparable<*> = 0xFFFF_FFFF_FFFF_FFFFu
const val u9 = 0xFFFF_FFFF_FFFF_FFFFUL
fun takeUByte(ubyte: UByte) {}
fun test() {
@@ -10,5 +10,6 @@ public const val u5: kotlin.ULong = -1.toULong()
public const val u6: kotlin.ULong = -1.toULong()
public const val u7: kotlin.ULong = -1.toULong()
public val u8: kotlin.Comparable<*>
public const val u9: kotlin.ULong = -1.toULong()
public fun takeUByte(/*0*/ ubyte: kotlin.UByte): kotlin.Unit
public fun test(): kotlin.Unit
@@ -0,0 +1,4 @@
val a1 = 1u<!WRONG_LONG_SUFFIX!>l<!>
val a2 = 0x1u<!WRONG_LONG_SUFFIX!>l<!>
val a3 = 0B1u<!WRONG_LONG_SUFFIX!>l<!>
val a4 = 1U<!WRONG_LONG_SUFFIX!>l<!>
@@ -0,0 +1,6 @@
package
public val a1: kotlin.ULong = 1.toULong()
public val a2: kotlin.ULong = 1.toULong()
public val a3: kotlin.ULong = 1.toULong()
public val a4: kotlin.ULong = 1.toULong()