[FIR] Implement DIVISION_BY_ZERO diagnostics, fix tests

This commit is contained in:
Ivan Kochurkin
2021-04-08 18:48:42 +03:00
committed by TeamCityServer
parent 964bba3530
commit 847ab40707
14 changed files with 78 additions and 11 deletions
@@ -15,7 +15,7 @@ fun test3() {}
@Foo(c = [1f], b = [""], a = [1])
fun test4() {}
@Foo([1 + 2], ["Hello, " + "Kotlin"], [1 / 0f])
@Foo([1 + 2], ["Hello, " + "Kotlin"], [<!DIVISION_BY_ZERO!>1 / 0f<!>])
fun test5() {}
const val ONE = 1
@@ -23,7 +23,7 @@ fun test1_2() {}
@Ann2(*[])
fun test2() {}
@Ann3(a = *[0f, 1 / 0f])
@Ann3(a = *[0f, <!DIVISION_BY_ZERO!>1 / 0f<!>])
fun test3() {}
@Ann5(Ann4(*["/"]))
@@ -2,17 +2,21 @@
// !WITH_NEW_INFERENCE
val a1 = 0
val a2 = 1 / 0
val a2 = <!DIVISION_BY_ZERO!>1 / 0<!>
val a3 = 1 / a1
val a4 = 1 / a2
val a5 = 2 * (1 / 0)
val a5 = 2 * (<!DIVISION_BY_ZERO!>1 / 0<!>)
val a6 = 1.div(0)
val a6 = <!DIVISION_BY_ZERO!>1.div(0)<!>
val a7 = 1.div(a1)
val a8 = 1.div(a2)
val a9 = 2 * (1.div(0))
val a9 = 2 * (<!DIVISION_BY_ZERO!>1.div(0)<!>)
val b1: Byte = 1 / 0
@Ann(1 / 0) val b2 = 1
val a10 = <!DIVISION_BY_ZERO!>1 / 0.0f<!>
val a11 = <!DIVISION_BY_ZERO!>1 / 0.0<!>
val a12 = <!DIVISION_BY_ZERO!>1L / 0<!>
annotation class Ann(val i : Int)
val b1: Byte = <!DIVISION_BY_ZERO!>1 / 0<!>
@Ann(<!DIVISION_BY_ZERO!>1 / 0<!>) val b2 = 1
annotation class Ann(val i : Int)
@@ -12,6 +12,10 @@ val a7 = <!DIVISION_BY_ZERO!>1.div(a1)<!>
val a8 = 1.div(a2)
val a9 = 2 * (<!DIVISION_BY_ZERO!>1.div(0)<!>)
val a10 = <!DIVISION_BY_ZERO!>1 / 0.0f<!>
val a11 = <!DIVISION_BY_ZERO!>1 / 0.0<!>
val a12 = <!DIVISION_BY_ZERO!>1L / 0<!>
val b1: Byte = <!DIVISION_BY_ZERO, TYPE_MISMATCH!>1 / 0<!>
@Ann(<!ANNOTATION_ARGUMENT_MUST_BE_CONST, DIVISION_BY_ZERO!>1 / 0<!>) val b2 = 1
@@ -1,6 +1,9 @@
package
public val a1: kotlin.Int = 0
public val a10: kotlin.Float = Infinity.toFloat()
public val a11: kotlin.Double = Infinity.toDouble()
public val a12: kotlin.Long
public val a2: kotlin.Int
public val a3: kotlin.Int
public val a4: kotlin.Int
@@ -19,3 +22,4 @@ public final annotation class Ann : kotlin.Annotation {
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}