[FIR] Approximate all integer literals which resolved in independent mode

#KT-42016
This commit is contained in:
Dmitriy Novozhilov
2020-09-18 11:05:44 +03:00
parent 5efd533f55
commit 4374c06537
22 changed files with 121 additions and 92 deletions
@@ -10,21 +10,21 @@ fun test() {
<!INAPPLICABLE_CANDIDATE!>fooInt<!>(1 - 1.toLong())
fooInt(1 - 1.toShort())
fooByte(1 - 1)
<!INAPPLICABLE_CANDIDATE!>fooByte<!>(1 - 1)
<!INAPPLICABLE_CANDIDATE!>fooByte<!>(1 - 1.toInt())
<!INAPPLICABLE_CANDIDATE!>fooByte<!>(1 - 1.toByte())
<!INAPPLICABLE_CANDIDATE!>fooByte<!>(1 - 1.toLong())
<!INAPPLICABLE_CANDIDATE!>fooByte<!>(1 - 1.toShort())
fooLong(1 - 1)
<!INAPPLICABLE_CANDIDATE!>fooLong<!>(1 - 1)
<!INAPPLICABLE_CANDIDATE!>fooLong<!>(1 - 1.toInt())
<!INAPPLICABLE_CANDIDATE!>fooLong<!>(1 - 1.toByte())
fooLong(1 - 1.toLong())
<!INAPPLICABLE_CANDIDATE!>fooLong<!>(1 - 1.toShort())
fooShort(1 - 1)
<!INAPPLICABLE_CANDIDATE!>fooShort<!>(1 - 1)
<!INAPPLICABLE_CANDIDATE!>fooShort<!>(1 - 1.toInt())
<!INAPPLICABLE_CANDIDATE!>fooShort<!>(1 - 1.toByte())
<!INAPPLICABLE_CANDIDATE!>fooShort<!>(1 - 1.toLong())
<!INAPPLICABLE_CANDIDATE!>fooShort<!>(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)
<!INAPPLICABLE_CANDIDATE!>fooByte<!>(1 + 1)
<!INAPPLICABLE_CANDIDATE!>fooLong<!>(1 + 1)
<!INAPPLICABLE_CANDIDATE!>fooShort<!>(1 + 1)
fooInt(1 * 1)
<!INAPPLICABLE_CANDIDATE!>fooByte<!>(1 * 1)
<!INAPPLICABLE_CANDIDATE!>fooLong<!>(1 * 1)
<!INAPPLICABLE_CANDIDATE!>fooShort<!>(1 * 1)
fooInt(1 / 1)
<!INAPPLICABLE_CANDIDATE!>fooByte<!>(1 / 1)
<!INAPPLICABLE_CANDIDATE!>fooLong<!>(1 / 1)
<!INAPPLICABLE_CANDIDATE!>fooShort<!>(1 / 1)
fooInt(1 % 1)
<!INAPPLICABLE_CANDIDATE!>fooByte<!>(1 % 1)
<!INAPPLICABLE_CANDIDATE!>fooLong<!>(1 % 1)
<!INAPPLICABLE_CANDIDATE!>fooShort<!>(1 % 1)
}
@@ -1,4 +1,3 @@
// FIR_IDENTICAL
fun fooInt(p: Int) = p
fun fooLong(p: Long) = p
fun fooByte(p: Byte) = p
@@ -24,4 +23,4 @@ fun test() {
fooByte(1 % 1)
fooLong(1 % 1)
fooShort(1 % 1)
}
}
@@ -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.plus(1))
<!INAPPLICABLE_CANDIDATE!>fooByte<!>(1.plus(1))
<!INAPPLICABLE_CANDIDATE!>fooLong<!>(1.plus(1))
<!INAPPLICABLE_CANDIDATE!>fooShort<!>(1.plus(1))
fooInt(1.times(1))
<!INAPPLICABLE_CANDIDATE!>fooByte<!>(1.times(1))
<!INAPPLICABLE_CANDIDATE!>fooLong<!>(1.times(1))
<!INAPPLICABLE_CANDIDATE!>fooShort<!>(1.times(1))
fooInt(1.div(1))
<!INAPPLICABLE_CANDIDATE!>fooByte<!>(1.div(1))
<!INAPPLICABLE_CANDIDATE!>fooLong<!>(1.div(1))
<!INAPPLICABLE_CANDIDATE!>fooShort<!>(1.div(1))
fooInt(1.rem(1))
<!INAPPLICABLE_CANDIDATE!>fooByte<!>(1.rem(1))
<!INAPPLICABLE_CANDIDATE!>fooLong<!>(1.rem(1))
<!INAPPLICABLE_CANDIDATE!>fooShort<!>(1.rem(1))
}
@@ -1,4 +1,3 @@
// FIR_IDENTICAL
fun fooInt(p: Int) = p
fun fooLong(p: Long) = p
fun fooByte(p: Byte) = p
@@ -24,4 +23,4 @@ fun test() {
fooByte(1.rem(1))
fooLong(1.rem(1))
fooShort(1.rem(1))
}
}
@@ -5,22 +5,22 @@ fun fooShort(p: Short) = p
fun test() {
fooInt(1 plus 1)
fooByte(1 plus 1)
fooLong(1 plus 1)
fooShort(1 plus 1)
<!INAPPLICABLE_CANDIDATE!>fooByte<!>(1 plus 1)
<!INAPPLICABLE_CANDIDATE!>fooLong<!>(1 plus 1)
<!INAPPLICABLE_CANDIDATE!>fooShort<!>(1 plus 1)
fooInt(1 times 1)
fooByte(1 times 1)
fooLong(1 times 1)
fooShort(1 times 1)
<!INAPPLICABLE_CANDIDATE!>fooByte<!>(1 times 1)
<!INAPPLICABLE_CANDIDATE!>fooLong<!>(1 times 1)
<!INAPPLICABLE_CANDIDATE!>fooShort<!>(1 times 1)
fooInt(1 div 1)
fooByte(1 div 1)
fooLong(1 div 1)
fooShort(1 div 1)
<!INAPPLICABLE_CANDIDATE!>fooByte<!>(1 div 1)
<!INAPPLICABLE_CANDIDATE!>fooLong<!>(1 div 1)
<!INAPPLICABLE_CANDIDATE!>fooShort<!>(1 div 1)
fooInt(1 rem 1)
fooByte(1 rem 1)
fooLong(1 rem 1)
fooShort(1 rem 1)
}
<!INAPPLICABLE_CANDIDATE!>fooByte<!>(1 rem 1)
<!INAPPLICABLE_CANDIDATE!>fooLong<!>(1 rem 1)
<!INAPPLICABLE_CANDIDATE!>fooShort<!>(1 rem 1)
}