[FIR] Implement Int -> Long conversions for literals and operators over them
^KT-38895 ^KT-50996 Fixed ^KT-51000 Fixed ^KT-51003 Fixed ^KT-51018 Fixed
This commit is contained in:
committed by
teamcity
parent
cc86ca2a0f
commit
52b72a7dac
+1
-1
@@ -17,7 +17,7 @@ fun test() {
|
||||
fooByte(<!ARGUMENT_TYPE_MISMATCH!>1 - 1.toLong()<!>)
|
||||
fooByte(<!ARGUMENT_TYPE_MISMATCH!>1 - 1.toShort()<!>)
|
||||
|
||||
fooLong(<!ARGUMENT_TYPE_MISMATCH!>1 - 1<!>)
|
||||
fooLong(1 - 1)
|
||||
fooLong(<!ARGUMENT_TYPE_MISMATCH!>1 - 1.toInt()<!>)
|
||||
fooLong(<!ARGUMENT_TYPE_MISMATCH!>1 - 1.toByte()<!>)
|
||||
fooLong(1 - 1.toLong())
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
val p1: Int = 1 - 1
|
||||
val p2: Long = <!TYPE_MISMATCH!>1 - 1<!>
|
||||
val p2: Long = 1 - 1
|
||||
val p3: Byte = <!TYPE_MISMATCH!>1 - 1<!>
|
||||
val p4: Short = <!TYPE_MISMATCH!>1 - 1<!>
|
||||
|
||||
|
||||
@@ -7,21 +7,21 @@ fun fooShort(p: Short) = p
|
||||
fun test() {
|
||||
fooInt(1 + 1)
|
||||
fooByte(<!ARGUMENT_TYPE_MISMATCH!>1 + 1<!>)
|
||||
fooLong(<!ARGUMENT_TYPE_MISMATCH!>1 + 1<!>)
|
||||
fooLong(1 + 1)
|
||||
fooShort(<!ARGUMENT_TYPE_MISMATCH!>1 + 1<!>)
|
||||
|
||||
fooInt(1 * 1)
|
||||
fooByte(<!ARGUMENT_TYPE_MISMATCH!>1 * 1<!>)
|
||||
fooLong(<!ARGUMENT_TYPE_MISMATCH!>1 * 1<!>)
|
||||
fooLong(1 * 1)
|
||||
fooShort(<!ARGUMENT_TYPE_MISMATCH!>1 * 1<!>)
|
||||
|
||||
fooInt(1 / 1)
|
||||
fooByte(<!ARGUMENT_TYPE_MISMATCH!>1 / 1<!>)
|
||||
fooLong(<!ARGUMENT_TYPE_MISMATCH!>1 / 1<!>)
|
||||
fooLong(1 / 1)
|
||||
fooShort(<!ARGUMENT_TYPE_MISMATCH!>1 / 1<!>)
|
||||
|
||||
fooInt(1 % 1)
|
||||
fooByte(<!ARGUMENT_TYPE_MISMATCH!>1 % 1<!>)
|
||||
fooLong(<!ARGUMENT_TYPE_MISMATCH!>1 % 1<!>)
|
||||
fooLong(1 % 1)
|
||||
fooShort(<!ARGUMENT_TYPE_MISMATCH!>1 % 1<!>)
|
||||
}
|
||||
|
||||
+4
-4
@@ -7,21 +7,21 @@ fun fooShort(p: Short) = p
|
||||
fun test() {
|
||||
fooInt(1.plus(1))
|
||||
fooByte(<!ARGUMENT_TYPE_MISMATCH!>1.plus(1)<!>)
|
||||
fooLong(<!ARGUMENT_TYPE_MISMATCH!>1.plus(1)<!>)
|
||||
fooLong(1.plus(1))
|
||||
fooShort(<!ARGUMENT_TYPE_MISMATCH!>1.plus(1)<!>)
|
||||
|
||||
fooInt(1.times(1))
|
||||
fooByte(<!ARGUMENT_TYPE_MISMATCH!>1.times(1)<!>)
|
||||
fooLong(<!ARGUMENT_TYPE_MISMATCH!>1.times(1)<!>)
|
||||
fooLong(1.times(1))
|
||||
fooShort(<!ARGUMENT_TYPE_MISMATCH!>1.times(1)<!>)
|
||||
|
||||
fooInt(1.div(1))
|
||||
fooByte(<!ARGUMENT_TYPE_MISMATCH!>1.div(1)<!>)
|
||||
fooLong(<!ARGUMENT_TYPE_MISMATCH!>1.div(1)<!>)
|
||||
fooLong(1.div(1))
|
||||
fooShort(<!ARGUMENT_TYPE_MISMATCH!>1.div(1)<!>)
|
||||
|
||||
fooInt(1.rem(1))
|
||||
fooByte(<!ARGUMENT_TYPE_MISMATCH!>1.rem(1)<!>)
|
||||
fooLong(<!ARGUMENT_TYPE_MISMATCH!>1.rem(1)<!>)
|
||||
fooLong(1.rem(1))
|
||||
fooShort(<!ARGUMENT_TYPE_MISMATCH!>1.rem(1)<!>)
|
||||
}
|
||||
|
||||
+4
-4
@@ -7,21 +7,21 @@ fun fooShort(p: Short) = p
|
||||
fun test() {
|
||||
fooInt(1 <!INFIX_MODIFIER_REQUIRED!>plus<!> 1)
|
||||
fooByte(<!ARGUMENT_TYPE_MISMATCH!>1 <!INFIX_MODIFIER_REQUIRED!>plus<!> 1<!>)
|
||||
fooLong(<!ARGUMENT_TYPE_MISMATCH!>1 <!INFIX_MODIFIER_REQUIRED!>plus<!> 1<!>)
|
||||
fooLong(1 <!INFIX_MODIFIER_REQUIRED!>plus<!> 1)
|
||||
fooShort(<!ARGUMENT_TYPE_MISMATCH!>1 <!INFIX_MODIFIER_REQUIRED!>plus<!> 1<!>)
|
||||
|
||||
fooInt(1 <!INFIX_MODIFIER_REQUIRED!>times<!> 1)
|
||||
fooByte(<!ARGUMENT_TYPE_MISMATCH!>1 <!INFIX_MODIFIER_REQUIRED!>times<!> 1<!>)
|
||||
fooLong(<!ARGUMENT_TYPE_MISMATCH!>1 <!INFIX_MODIFIER_REQUIRED!>times<!> 1<!>)
|
||||
fooLong(1 <!INFIX_MODIFIER_REQUIRED!>times<!> 1)
|
||||
fooShort(<!ARGUMENT_TYPE_MISMATCH!>1 <!INFIX_MODIFIER_REQUIRED!>times<!> 1<!>)
|
||||
|
||||
fooInt(1 <!INFIX_MODIFIER_REQUIRED!>div<!> 1)
|
||||
fooByte(<!ARGUMENT_TYPE_MISMATCH!>1 <!INFIX_MODIFIER_REQUIRED!>div<!> 1<!>)
|
||||
fooLong(<!ARGUMENT_TYPE_MISMATCH!>1 <!INFIX_MODIFIER_REQUIRED!>div<!> 1<!>)
|
||||
fooLong(1 <!INFIX_MODIFIER_REQUIRED!>div<!> 1)
|
||||
fooShort(<!ARGUMENT_TYPE_MISMATCH!>1 <!INFIX_MODIFIER_REQUIRED!>div<!> 1<!>)
|
||||
|
||||
fooInt(1 <!INFIX_MODIFIER_REQUIRED!>rem<!> 1)
|
||||
fooByte(<!ARGUMENT_TYPE_MISMATCH!>1 <!INFIX_MODIFIER_REQUIRED!>rem<!> 1<!>)
|
||||
fooLong(<!ARGUMENT_TYPE_MISMATCH!>1 <!INFIX_MODIFIER_REQUIRED!>rem<!> 1<!>)
|
||||
fooLong(1 <!INFIX_MODIFIER_REQUIRED!>rem<!> 1)
|
||||
fooShort(<!ARGUMENT_TYPE_MISMATCH!>1 <!INFIX_MODIFIER_REQUIRED!>rem<!> 1<!>)
|
||||
}
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
// LANGUAGE: +ApproximateIntegerLiteralTypesInReceiverPosition
|
||||
val p1: Byte = <!TYPE_MISMATCH!>(1 + 2) * 2<!>
|
||||
val p2: Short = <!TYPE_MISMATCH!>(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
|
||||
@@ -1,4 +1,3 @@
|
||||
// FIR_IDENTICAL
|
||||
// LANGUAGE: +ApproximateIntegerLiteralTypesInReceiverPosition
|
||||
val p1: Byte = <!TYPE_MISMATCH!>(1 + 2) * 2<!>
|
||||
val p2: Short = <!TYPE_MISMATCH!>(1 + 2) * 2<!>
|
||||
|
||||
Reference in New Issue
Block a user