Use type from compile time value for prefix expression

This commit is contained in:
Natalia Ukhorskaya
2013-12-02 15:01:32 +04:00
parent 9c176ddaa8
commit 2a023c16a9
49 changed files with 805 additions and 140 deletions
@@ -0,0 +1,34 @@
fun fooInt(p: Int) = p
fun fooLong(p: Long) = p
fun fooByte(p: Byte) = p
fun fooShort(p: Short) = p
fun test() {
fooInt(-1)
fooInt(<!TYPE_MISMATCH!>-1111111111111111111<!>)
fooInt(-1.toInt())
fooInt(<!TYPE_MISMATCH!>-1.toByte()<!>)
fooInt(<!TYPE_MISMATCH!>-1.toLong()<!>)
fooInt(<!TYPE_MISMATCH!>-1.toShort()<!>)
fooByte(-1)
fooByte(<!TYPE_MISMATCH!>-1111111111111111111<!>)
fooByte(<!TYPE_MISMATCH!>-1.toInt()<!>)
fooByte(-1.toByte())
fooByte(<!TYPE_MISMATCH!>-1.toLong()<!>)
fooByte(<!TYPE_MISMATCH!>-1.toShort()<!>)
fooLong(-1)
fooLong(-1111111111111111111)
fooLong(<!TYPE_MISMATCH!>-1.toInt()<!>)
fooLong(<!TYPE_MISMATCH!>-1.toByte()<!>)
fooLong(-1.toLong())
fooLong(<!TYPE_MISMATCH!>-1.toShort()<!>)
fooShort(-1)
fooShort(<!TYPE_MISMATCH!>-1111111111111111111<!>)
fooShort(<!TYPE_MISMATCH!>-1.toInt()<!>)
fooShort(<!TYPE_MISMATCH!>-1.toByte()<!>)
fooShort(<!TYPE_MISMATCH!>-1.toLong()<!>)
fooShort(-1.toShort())
}
@@ -0,0 +1,41 @@
val p1 = -1
val p2 = -1.toLong()
val p3 = -1.toByte()
val p4 = -1.toInt()
val p5 = -1.toShort()
val p6 = -1111111111111111111
fun fooInt(p: Int) = p
fun fooLong(p: Long) = p
fun fooByte(p: Byte) = p
fun fooShort(p: Short) = p
fun test() {
fooInt(p1)
fooInt(<!TYPE_MISMATCH!>p2<!>)
fooInt(<!TYPE_MISMATCH!>p3<!>)
fooInt(p4)
fooInt(<!TYPE_MISMATCH!>p5<!>)
fooInt(<!TYPE_MISMATCH!>p6<!>)
fooLong(<!TYPE_MISMATCH!>p1<!>)
fooLong(p2)
fooLong(<!TYPE_MISMATCH!>p3<!>)
fooLong(<!TYPE_MISMATCH!>p4<!>)
fooLong(<!TYPE_MISMATCH!>p5<!>)
fooLong(p6)
fooShort(<!TYPE_MISMATCH!>p1<!>)
fooShort(<!TYPE_MISMATCH!>p2<!>)
fooShort(<!TYPE_MISMATCH!>p3<!>)
fooShort(<!TYPE_MISMATCH!>p4<!>)
fooShort(p5)
fooShort(<!TYPE_MISMATCH!>p6<!>)
fooByte(<!TYPE_MISMATCH!>p1<!>)
fooByte(<!TYPE_MISMATCH!>p2<!>)
fooByte(p3)
fooByte(<!TYPE_MISMATCH!>p4<!>)
fooByte(<!TYPE_MISMATCH!>p5<!>)
fooByte(<!TYPE_MISMATCH!>p6<!>)
}
@@ -0,0 +1,29 @@
val p1: Int = -1
val p2: Long = -1
val p3: Byte = -1
val p4: Short = -1
val lp1: Int = <!TYPE_MISMATCH!>-1111111111111111111<!>
val lp2: Long = -1111111111111111111
val lp3: Byte = <!TYPE_MISMATCH!>-1111111111111111111<!>
val lp4: Short = <!TYPE_MISMATCH!>-1111111111111111111<!>
val l1: Long = -1.toLong()
val l2: Byte = <!TYPE_MISMATCH!>-1.toLong()<!>
val l3: Int = <!TYPE_MISMATCH!>-1.toLong()<!>
val l4: Short = <!TYPE_MISMATCH!>-1.toLong()<!>
val b1: Byte = -1.toByte()
val b2: Int = <!TYPE_MISMATCH!>-1.toByte()<!>
val b3: Long = <!TYPE_MISMATCH!>-1.toByte()<!>
val b4: Short = <!TYPE_MISMATCH!>-1.toByte()<!>
val i1: Byte = <!TYPE_MISMATCH!>-1.toInt()<!>
val i2: Int = -1.toInt()
val i3: Long = <!TYPE_MISMATCH!>-1.toInt()<!>
val i4: Short = <!TYPE_MISMATCH!>-1.toInt()<!>
val s1: Byte = <!TYPE_MISMATCH!>-1.toShort()<!>
val s2: Int = <!TYPE_MISMATCH!>-1.toShort()<!>
val s3: Long = <!TYPE_MISMATCH!>-1.toShort()<!>
val s4: Short = -1.toShort()