[FIR-TEST] Add new testdata generated after changes in previous commit

This commit is contained in:
Dmitriy Novozhilov
2019-12-11 16:16:22 +03:00
parent e9c02a1cca
commit 2536fa0cd5
4578 changed files with 104067 additions and 1 deletions
@@ -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())
<!INAPPLICABLE_CANDIDATE!>fooInt<!>(1 - 1.toLong())
fooInt(1 - 1.toShort())
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.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.toInt())
<!INAPPLICABLE_CANDIDATE!>fooShort<!>(1 - 1.toByte())
<!INAPPLICABLE_CANDIDATE!>fooShort<!>(1 - 1.toLong())
<!INAPPLICABLE_CANDIDATE!>fooShort<!>(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)
<!INAPPLICABLE_CANDIDATE!>fooInt<!>(p2)
fooInt(p3)
fooInt(p4)
fooInt(p5)
<!INAPPLICABLE_CANDIDATE!>fooLong<!>(p1)
fooLong(p2)
<!INAPPLICABLE_CANDIDATE!>fooLong<!>(p3)
<!INAPPLICABLE_CANDIDATE!>fooLong<!>(p4)
<!INAPPLICABLE_CANDIDATE!>fooLong<!>(p5)
<!INAPPLICABLE_CANDIDATE!>fooShort<!>(p1)
<!INAPPLICABLE_CANDIDATE!>fooShort<!>(p2)
<!INAPPLICABLE_CANDIDATE!>fooShort<!>(p3)
<!INAPPLICABLE_CANDIDATE!>fooShort<!>(p4)
<!INAPPLICABLE_CANDIDATE!>fooShort<!>(p5)
<!INAPPLICABLE_CANDIDATE!>fooByte<!>(p1)
<!INAPPLICABLE_CANDIDATE!>fooByte<!>(p2)
<!INAPPLICABLE_CANDIDATE!>fooByte<!>(p3)
<!INAPPLICABLE_CANDIDATE!>fooByte<!>(p4)
<!INAPPLICABLE_CANDIDATE!>fooByte<!>(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 = 1 - 1.toLong()
val l3: Int = 1 - 1.toLong()
val l4: Short = 1 - 1.toLong()
val b1: Byte = 1 - 1.toByte()
val b2: Int = 1 - 1.toByte()
val b3: Long = 1 - 1.toByte()
val b4: Short = 1 - 1.toByte()
val i1: Byte = 1 - 1.toInt()
val i2: Int = 1 - 1.toInt()
val i3: Long = 1 - 1.toInt()
val i4: Short = 1 - 1.toInt()
val s1: Byte = 1 - 1.toShort()
val s2: Int = 1 - 1.toShort()
val s3: Long = 1 - 1.toShort()
val s4: Short = 1 - 1.toShort()
@@ -0,0 +1,18 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE
// !WITH_NEW_INFERENCE
val a1 = 0
val a2 = 1 / 0
val a3 = 1 / a1
val a4 = 1 / a2
val a5 = 2 * (1 / 0)
val a6 = 1.div(0)
val a7 = 1.div(a1)
val a8 = 1.div(a2)
val a9 = 2 * (1.div(0))
val b1: Byte = 1 / 0
@Ann(1 / 0) val b2 = 1
annotation class Ann(val i : Int)
@@ -0,0 +1,10 @@
val a1: Float = 1F
val a2: Float = 1.0F
val a3: Float = 1e-1F
val a4: Float = 1.0e-1F
val b5: Float = 1f
val b6: Float = 1.0f
val b7: Float = 1e-1f
val b8: Float = 1.0e-1f
@@ -0,0 +1,21 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE, -UNUSED_EXPRESSION
fun test() {
1.2E400F
1.2E-400F
11111111111111111111111111111111111111111111111111111111111111111F
0.000000000000000000000000000000000000000000000000000000000000001F
0.000000000000000000000000000000000000001000000000000000000000000F
1.2E400f
1.2E-400f
11111111111111111111111111111111111111111111111111111111111111111f
0.000000000000000000000000000000000000000000000000000000000000001f
0.000000000000000000000000000000000000001000000000000000000000000f
val d1: Double = 1.2E400
val d2: Double = 1.2E-400
val d3: Double = 11111111111111111111111111111111111111111111111111111111111111111.0
val d4: Double = 0.000000000000000000000000000000000000000000000000000000000000001
val d5: Double = 0.000000000000000000000000000000000000001000000000000000000000000
}
@@ -0,0 +1,10 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE, -UNUSED_PARAMETER
infix fun Int.rem(other: Int) = 10
infix operator fun Int.minus(other: Int): Int = 20
const val a1 = (-5) rem 2
const val a2 = (-5).rem(2)
const val b1 = 5 minus 3
const val b2 = 5.minus(3)
@@ -0,0 +1,44 @@
// !LANGUAGE: +InlineClasses
// JAVAC_SKIP
// FILE: uint.kt
package kotlin
inline class UByte(private val b: Byte)
inline class UShort(private val s: Short)
inline class UInt(private val i: Int)
inline class ULong(private val l: Long)
// FILE: test.kt
annotation class AnnoUB(val ub0: UByte, val ub1: UByte)
annotation class AnnoUS(val us0: UShort, val us1: UShort)
annotation class AnnoUI(val ui0: UInt, val ui1: UInt, val ui2: UInt, val ui3: UInt)
annotation class AnnoUL(val ul0: ULong, val ul1: ULong)
const val ub0 = <!UNRESOLVED_REFERENCE!>UByte<!>(1)
const val us0 = <!UNRESOLVED_REFERENCE!>UShort<!>(2)
const val ul0 = <!UNRESOLVED_REFERENCE!>ULong<!>(3)
const val ui0 = <!UNRESOLVED_REFERENCE!>UInt<!>(-1)
const val ui1 = <!UNRESOLVED_REFERENCE!>UInt<!>(0)
const val ui2 = <!UNRESOLVED_REFERENCE!>UInt<!>(40 + 2)
@AnnoUB(<!UNRESOLVED_REFERENCE!>UByte<!>(1), ub0)
fun f0() {}
@AnnoUS(<!UNRESOLVED_REFERENCE!>UShort<!>(2 + 5), us0)
fun f1() {}
@AnnoUI(ui0, ui1, ui2, <!UNRESOLVED_REFERENCE!>UInt<!>(100))
fun f2() {}
@AnnoUL(ul0, <!UNRESOLVED_REFERENCE!>ULong<!>(5))
fun f3() {}
const val explicit: UInt = <!UNRESOLVED_REFERENCE!>UInt<!>(2)
const val nullable: UInt? = <!UNRESOLVED_REFERENCE!>UInt<!>(3)
annotation class NullableAnno(val u: UInt?)
@@ -0,0 +1,77 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE
val intMaxValue: Int = 0x7fffffff
val intMinValue: Int = 1 shl 31
val a3: Int = intMaxValue + 1 - 10
val a4: Int = intMaxValue + 1 + 10
val i2: Int = intMaxValue - 1 + 2
val i3: Int = intMaxValue - intMinValue
val i4: Int = -intMinValue
val i5: Int = intMinValue - 1
val i6: Int = intMinValue - intMaxValue
val i7: Int = intMinValue + intMaxValue
val i8: Int = -intMaxValue
val i10: Int = intMinValue * -1
val i11: Int = intMinValue * 2
val i12: Int = intMaxValue * -2
val i13: Int = intMaxValue * -1
val i15: Int = intMinValue / -1
val l20: Int = 30 * 24 * 60 * 60 * 1000
val l21: Int = intMinValue - intMinValue
val l22: Int = intMinValue + -intMinValue
val l23: Int = intMaxValue + -intMinValue
val l24: Int = (-1).mod(5)
val l25: Int = (-1).rem(5)
val l26: Int = (-1) % 5
fun foo() {
val a3: Int = intMaxValue + 1 - 10
val a4: Int = intMaxValue + 1 + 10
val i2: Int = intMaxValue - 1 + 2
val i3: Int = intMaxValue - intMinValue
val i4: Int = -intMinValue
val i5: Int = intMinValue - 1
val i6: Int = intMinValue - intMaxValue
val i7: Int = intMinValue + intMaxValue
val i8: Int = -intMaxValue
val i10: Int = intMinValue * -1
val i11: Int = intMinValue * 2
val i12: Int = intMaxValue * -2
val i13: Int = intMaxValue * -1
val i15: Int = intMinValue / -1
val l20: Int = 30 * 24 * 60 * 60 * 1000
val l21: Int = intMinValue - intMinValue
val l22: Int = intMinValue + -intMinValue
val l23: Int = intMaxValue + -intMinValue
val l24: Int = (-1).mod(5)
val l25: Int = (-1).rem(5)
val l26: Int = (-1) % 5
}
class A {
fun foo() {
val a3: Int = intMaxValue + 1 - 10
val a4: Int = intMaxValue + 1 + 10
val i2: Int = intMaxValue - 1 + 2
val i3: Int = intMaxValue - intMinValue
val i4: Int = -intMinValue
val i5: Int = intMinValue - 1
val i6: Int = intMinValue - intMaxValue
val i7: Int = intMinValue + intMaxValue
val i8: Int = -intMaxValue
val i10: Int = intMinValue * -1
val i11: Int = intMinValue * 2
val i12: Int = intMaxValue * -2
val i13: Int = intMaxValue * -1
val i15: Int = intMinValue / -1
val l20: Int = 30 * 24 * 60 * 60 * 1000
val l21: Int = intMinValue - intMinValue
val l22: Int = intMinValue + -intMinValue
val l23: Int = intMaxValue + -intMinValue
val l24: Int = (-1).mod(5)
val l25: Int = (-1).rem(5)
val l26: Int = (-1) % 5
}
}
@@ -0,0 +1,14 @@
// FILE: Test.java
public class Test {
public static int i1 = Integer.MAX_VALUE;
public static final int i2 = Integer.MAX_VALUE;
public final int i3 = Integer.MAX_VALUE;
public int i4 = Integer.MAX_VALUE;
}
// FILE: A.kt
val a1: Int = Test.i1 + 1
val a2: Int = Test.i2 + 1
val a3: Int = Test().i3 + 1
val a4: Int = Test().i4 + 1
@@ -0,0 +1,10 @@
val a1: Int = 1L
val a2: Int = 0x1L
val a3: Int = 0X1L
val a4: Int = 0b1L
val a5: Int = 0B1L
val a6: Long = 1L
val a7: Long = 0x1L
val a8: Long = 0X1L
val a9: Long = 0b1L
val a10: Long = 0B1L
@@ -0,0 +1,8 @@
fun bar() {
false and false
}
// See exception in KT-13421
fun foo() {
42 and false
}
@@ -0,0 +1,65 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE
val longMaxValue: Long = 0x7fffffffffffffff
val longMinValue: Long = -longMaxValue - 1
val intMaxValue: Int = 0x7fffffff
val intMinValue: Int = 1 shl 31
val a2: Long = longMinValue - 10
val l1: Long = longMaxValue + 1
val l2: Long = longMaxValue - 1 + 2
val l3: Long = longMaxValue - longMinValue
val l4: Long = -longMinValue
val l5: Long = longMinValue - 1
val l6: Long = longMinValue - longMaxValue
val l7: Long = longMinValue + longMaxValue
val l8: Long = -longMaxValue
val l10: Long = -intMinValue.toLong()
val l11: Long = -1 + intMinValue.toLong()
val l12: Long = longMinValue * intMinValue
val l13: Long = longMinValue * -1
val l14: Long = longMinValue * 2
val l15: Long = longMaxValue * -2
val l16: Long = intMinValue.toLong() * -1
val l19: Long = longMinValue / -1
fun foo() {
val l1: Long = longMaxValue + 1
val l2: Long = longMaxValue - 1 + 2
val l3: Long = longMaxValue - longMinValue
val l4: Long = -longMinValue
val l5: Long = longMinValue - 1
val l6: Long = longMinValue - longMaxValue
val l7: Long = longMinValue + longMaxValue
val l8: Long = -longMaxValue
val l10: Long = -intMinValue.toLong()
val l11: Long = -1 + intMinValue.toLong()
val l12: Long = longMinValue * intMinValue
val l13: Long = longMinValue * -1
val l14: Long = longMinValue * 2
val l15: Long = longMaxValue * -2
val l16: Long = intMinValue.toLong() * -1
val l19: Long = longMinValue / -1
}
class A {
fun foo() {
val l1: Long = longMaxValue + 1
val l2: Long = longMaxValue - 1 + 2
val l3: Long = longMaxValue - longMinValue
val l4: Long = -longMinValue
val l5: Long = longMinValue - 1
val l6: Long = longMinValue - longMaxValue
val l7: Long = longMinValue + longMaxValue
val l8: Long = -longMaxValue
val l10: Long = -intMinValue.toLong()
val l11: Long = -1 + intMinValue.toLong()
val l12: Long = longMinValue * intMinValue
val l13: Long = longMinValue * -1
val l14: Long = longMinValue * 2
val l15: Long = longMaxValue * -2
val l16: Long = intMinValue.toLong() * -1
val l19: Long = longMinValue / -1
}
}
@@ -0,0 +1,11 @@
val zero = 0
fun test() {
-0
-0L
-0.0
-(1 - 1)
-zero
+0
}
@@ -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,31 @@
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))
fooByte(1.plus(1))
fooLong(1.plus(1))
fooShort(1.plus(1))
fooInt(1.times(1))
fooByte(1.times(1))
fooLong(1.times(1))
fooShort(1.times(1))
fooInt(1.div(1))
fooByte(1.div(1))
fooLong(1.div(1))
fooShort(1.div(1))
fooInt(1.mod(1))
<!INAPPLICABLE_CANDIDATE!>fooByte<!>(1.mod(1))
<!INAPPLICABLE_CANDIDATE!>fooLong<!>(1.mod(1))
<!INAPPLICABLE_CANDIDATE!>fooShort<!>(1.mod(1))
fooInt(1.rem(1))
fooByte(1.rem(1))
fooLong(1.rem(1))
fooShort(1.rem(1))
}
@@ -0,0 +1,31 @@
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)
fooByte(1 plus 1)
fooLong(1 plus 1)
fooShort(1 plus 1)
fooInt(1 times 1)
fooByte(1 times 1)
fooLong(1 times 1)
fooShort(1 times 1)
fooInt(1 div 1)
fooByte(1 div 1)
fooLong(1 div 1)
fooShort(1 div 1)
fooInt(1 mod 1)
<!INAPPLICABLE_CANDIDATE!>fooByte<!>(1 mod 1)
<!INAPPLICABLE_CANDIDATE!>fooLong<!>(1 mod 1)
<!INAPPLICABLE_CANDIDATE!>fooShort<!>(1 mod 1)
fooInt(1 rem 1)
fooByte(1 rem 1)
fooLong(1 rem 1)
fooShort(1 rem 1)
}
@@ -0,0 +1,2 @@
val a1: Int = 32000.toShort() * 32000.toShort() * 32000.toShort()
val a2: Int = 128.toByte() * 128.toByte() * 128.toByte() * 128.toByte() * 128.toByte()
@@ -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 = (1.toByte() + 2) * 2
val b2: Short = (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
@@ -0,0 +1,8 @@
// FILE: a.kt
package example.ns
val y: Any? = 2
// FILE: b.kt
package example
val x: Int = if (example.ns.y is Int) example.ns.y else 2
@@ -0,0 +1,36 @@
fun fooInt(p: Int) = p
fun fooLong(p: Long) = p
fun fooByte(p: Byte) = p
fun fooShort(p: Short) = p
fun test() {
fooInt(-1)
<!INAPPLICABLE_CANDIDATE!>fooInt<!>(-1111111111111111111)
fooInt(-1.toInt())
fooInt(-1.toByte())
<!INAPPLICABLE_CANDIDATE!>fooInt<!>(-1.toLong())
fooInt(-1.toShort())
fooByte(-1)
<!INAPPLICABLE_CANDIDATE!>fooByte<!>(-1111111111111111111)
<!INAPPLICABLE_CANDIDATE!>fooByte<!>(-1.toInt())
<!INAPPLICABLE_CANDIDATE!>fooByte<!>(-1.toByte())
fooByte((-1).toByte())
<!INAPPLICABLE_CANDIDATE!>fooByte<!>(-1.toLong())
<!INAPPLICABLE_CANDIDATE!>fooByte<!>(-1.toShort())
fooLong(-1)
fooLong(-1111111111111111111)
<!INAPPLICABLE_CANDIDATE!>fooLong<!>(-1.toInt())
<!INAPPLICABLE_CANDIDATE!>fooLong<!>(-1.toByte())
fooLong(-1.toLong())
<!INAPPLICABLE_CANDIDATE!>fooLong<!>(-1.toShort())
fooShort(-1)
<!INAPPLICABLE_CANDIDATE!>fooShort<!>(-1111111111111111111)
<!INAPPLICABLE_CANDIDATE!>fooShort<!>(-1.toInt())
<!INAPPLICABLE_CANDIDATE!>fooShort<!>(-1.toByte())
<!INAPPLICABLE_CANDIDATE!>fooShort<!>(-1.toLong())
<!INAPPLICABLE_CANDIDATE!>fooShort<!>(-1.toShort())
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)
<!INAPPLICABLE_CANDIDATE!>fooInt<!>(p2)
<!INAPPLICABLE_CANDIDATE!>fooInt<!>(p3)
fooInt(p4)
<!INAPPLICABLE_CANDIDATE!>fooInt<!>(p5)
fooInt(p6)
<!INAPPLICABLE_CANDIDATE!>fooLong<!>(p1)
fooLong(p2)
<!INAPPLICABLE_CANDIDATE!>fooLong<!>(p3)
<!INAPPLICABLE_CANDIDATE!>fooLong<!>(p4)
<!INAPPLICABLE_CANDIDATE!>fooLong<!>(p5)
<!INAPPLICABLE_CANDIDATE!>fooLong<!>(p6)
<!INAPPLICABLE_CANDIDATE!>fooShort<!>(p1)
<!INAPPLICABLE_CANDIDATE!>fooShort<!>(p2)
<!INAPPLICABLE_CANDIDATE!>fooShort<!>(p3)
<!INAPPLICABLE_CANDIDATE!>fooShort<!>(p4)
fooShort(p5)
<!INAPPLICABLE_CANDIDATE!>fooShort<!>(p6)
<!INAPPLICABLE_CANDIDATE!>fooByte<!>(p1)
<!INAPPLICABLE_CANDIDATE!>fooByte<!>(p2)
fooByte(p3)
<!INAPPLICABLE_CANDIDATE!>fooByte<!>(p4)
<!INAPPLICABLE_CANDIDATE!>fooByte<!>(p5)
<!INAPPLICABLE_CANDIDATE!>fooByte<!>(p6)
}
@@ -0,0 +1,29 @@
val p1: Int = -1
val p2: Long = -1
val p3: Byte = -1
val p4: Short = -1
val lp1: Int = -1111111111111111111
val lp2: Long = -1111111111111111111
val lp3: Byte = -1111111111111111111
val lp4: Short = -1111111111111111111
val l1: Long = -1.toLong()
val l2: Byte = -1.toLong()
val l3: Int = -1.toLong()
val l4: Short = -1.toLong()
val b1: Byte = -1.toByte()
val b2: Int = -1.toByte()
val b3: Long = -1.toByte()
val b4: Short = -1.toByte()
val i1: Byte = -1.toInt()
val i2: Int = -1.toInt()
val i3: Long = -1.toInt()
val i4: Short = -1.toInt()
val s1: Byte = -1.toShort()
val s2: Int = -1.toShort()
val s3: Long = -1.toShort()
val s4: Short = -1.toShort()
@@ -0,0 +1,10 @@
val a1: Int = 1l
val a2: Int = 0x1l
val a3: Int = 0X1l
val a4: Int = 0b1l
val a5: Int = 0B1l
val a6: Long = 1l
val a7: Long = 0x1l
val a8: Long = 0X1l
val a9: Long = 0b1l
val a10: Long = 0B1l