Use type from compile time value for binary expression
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
fun fooInt(p: Int) = p
|
||||
fun fooLong(p: Long) = p
|
||||
fun fooByte(p: Byte) = p
|
||||
fun fooShort(p: Short) = p
|
||||
|
||||
fun test() {
|
||||
fooInt(1 - 1)
|
||||
fooInt(1 - 1.toInt())
|
||||
fooInt(1 - 1.toByte())
|
||||
fooInt(<!TYPE_MISMATCH!>1 - 1.toLong()<!>)
|
||||
fooInt(1 - 1.toShort())
|
||||
|
||||
fooByte(1 - 1)
|
||||
fooByte(<!TYPE_MISMATCH!>1 - 1.toInt()<!>)
|
||||
fooByte(<!TYPE_MISMATCH!>1 - 1.toByte()<!>)
|
||||
fooByte(<!TYPE_MISMATCH!>1 - 1.toLong()<!>)
|
||||
fooByte(<!TYPE_MISMATCH!>1 - 1.toShort()<!>)
|
||||
|
||||
fooLong(1 - 1)
|
||||
fooLong(<!TYPE_MISMATCH!>1 - 1.toInt()<!>)
|
||||
fooLong(<!TYPE_MISMATCH!>1 - 1.toByte()<!>)
|
||||
fooLong(1 - 1.toLong())
|
||||
fooLong(<!TYPE_MISMATCH!>1 - 1.toShort()<!>)
|
||||
|
||||
fooShort(1 - 1)
|
||||
fooShort(<!TYPE_MISMATCH!>1 - 1.toInt()<!>)
|
||||
fooShort(<!TYPE_MISMATCH!>1 - 1.toByte()<!>)
|
||||
fooShort(<!TYPE_MISMATCH!>1 - 1.toLong()<!>)
|
||||
fooShort(<!TYPE_MISMATCH!>1 - 1.toShort()<!>)
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
val p1 = 1 - 1
|
||||
val p2 = 1 - 1.toLong()
|
||||
val p3 = 1 - 1.toByte()
|
||||
val p4 = 1 - 1.toInt()
|
||||
val p5 = 1 - 1.toShort()
|
||||
|
||||
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(p3)
|
||||
fooInt(p4)
|
||||
fooInt(p5)
|
||||
|
||||
fooLong(<!TYPE_MISMATCH!>p1<!>)
|
||||
fooLong(p2)
|
||||
fooLong(<!TYPE_MISMATCH!>p3<!>)
|
||||
fooLong(<!TYPE_MISMATCH!>p4<!>)
|
||||
fooLong(<!TYPE_MISMATCH!>p5<!>)
|
||||
|
||||
fooShort(<!TYPE_MISMATCH!>p1<!>)
|
||||
fooShort(<!TYPE_MISMATCH!>p2<!>)
|
||||
fooShort(<!TYPE_MISMATCH!>p3<!>)
|
||||
fooShort(<!TYPE_MISMATCH!>p4<!>)
|
||||
fooShort(<!TYPE_MISMATCH!>p5<!>)
|
||||
|
||||
fooByte(<!TYPE_MISMATCH!>p1<!>)
|
||||
fooByte(<!TYPE_MISMATCH!>p2<!>)
|
||||
fooByte(<!TYPE_MISMATCH!>p3<!>)
|
||||
fooByte(<!TYPE_MISMATCH!>p4<!>)
|
||||
fooByte(<!TYPE_MISMATCH!>p5<!>)
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
val p1: Int = 1 - 1
|
||||
val p2: Long = 1 - 1
|
||||
val p3: Byte = 1 - 1
|
||||
val p4: Short = 1 - 1
|
||||
|
||||
val l1: Long = 1 - 1.toLong()
|
||||
val l2: Byte = <!TYPE_MISMATCH!>1 - 1.toLong()<!>
|
||||
val l3: Int = <!TYPE_MISMATCH!>1 - 1.toLong()<!>
|
||||
val l4: Short = <!TYPE_MISMATCH!>1 - 1.toLong()<!>
|
||||
|
||||
val b1: Byte = <!TYPE_MISMATCH!>1 - 1.toByte()<!>
|
||||
val b2: Int = 1 - 1.toByte()
|
||||
val b3: Long = <!TYPE_MISMATCH!>1 - 1.toByte()<!>
|
||||
val b4: Short = <!TYPE_MISMATCH!>1 - 1.toByte()<!>
|
||||
|
||||
val i1: Byte = <!TYPE_MISMATCH!>1 - 1.toInt()<!>
|
||||
val i2: Int = 1 - 1.toInt()
|
||||
val i3: Long = <!TYPE_MISMATCH!>1 - 1.toInt()<!>
|
||||
val i4: Short = <!TYPE_MISMATCH!>1 - 1.toInt()<!>
|
||||
|
||||
val s1: Byte = <!TYPE_MISMATCH!>1 - 1.toShort()<!>
|
||||
val s2: Int = 1 - 1.toShort()
|
||||
val s3: Long = <!TYPE_MISMATCH!>1 - 1.toShort()<!>
|
||||
val s4: Short = <!TYPE_MISMATCH!>1 - 1.toShort()<!>
|
||||
@@ -0,0 +1,26 @@
|
||||
fun fooInt(p: Int) = p
|
||||
fun fooLong(p: Long) = p
|
||||
fun fooByte(p: Byte) = p
|
||||
fun fooShort(p: Short) = p
|
||||
|
||||
fun test() {
|
||||
fooInt(1 + 1)
|
||||
fooByte(1 + 1)
|
||||
fooLong(1 + 1)
|
||||
fooShort(1 + 1)
|
||||
|
||||
fooInt(1 * 1)
|
||||
fooByte(1 * 1)
|
||||
fooLong(1 * 1)
|
||||
fooShort(1 * 1)
|
||||
|
||||
fooInt(1 / 1)
|
||||
fooByte(1 / 1)
|
||||
fooLong(1 / 1)
|
||||
fooShort(1 / 1)
|
||||
|
||||
fooInt(1 % 1)
|
||||
fooByte(1 % 1)
|
||||
fooLong(1 % 1)
|
||||
fooShort(1 % 1)
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
val p1: Byte = (1 + 2) * 2
|
||||
val p2: Short = (1 + 2) * 2
|
||||
val p3: Int = (1 + 2) * 2
|
||||
val p4: Long = (1 + 2) * 2
|
||||
|
||||
val b1: Byte = <!TYPE_MISMATCH!>(1.toByte() + 2) * 2<!>
|
||||
val b2: Short = <!TYPE_MISMATCH!>(1.toShort() + 2) * 2<!>
|
||||
val b3: Int = (1.toInt() + 2) * 2
|
||||
val b4: Long = (1.toLong() + 2) * 2
|
||||
|
||||
val i1: Int = (1.toByte() + 2) * 2
|
||||
val i2: Int = (1.toShort() + 2) * 2
|
||||
Reference in New Issue
Block a user