[IR] Add id method in interpreter's tests to avoid optimizations

This commit is contained in:
Ivan Kylchik
2023-04-11 17:23:11 +02:00
committed by Space Team
parent 621f5a0fb7
commit 3f60c83921
20 changed files with 552 additions and 532 deletions
@@ -3,6 +3,7 @@
// TARGET_BACKEND: NATIVE
// `Boolean.equals(Boolean)` will not be evaluated in K1
// IGNORE_BACKEND_K1: NATIVE
fun <T> T.id() = this
const val trueVal = <!EVALUATED("true")!>true<!>
const val falseVal = <!EVALUATED("false")!>false<!>
@@ -39,35 +40,35 @@ const val toString1 = trueVal.<!EVALUATED("true")!>toString()<!>
const val toString2 = falseVal.<!EVALUATED("false")!>toString()<!>
fun box(): String {
if (<!EVALUATED("false")!>not1 != false<!>) return "Fail 1.1"
if (<!EVALUATED("false")!>not2 != true<!>) return "Fail 1.2"
if (<!EVALUATED("false")!>not1<!>.id() != false) return "Fail 1.1"
if (<!EVALUATED("true")!>not2<!>.id() != true) return "Fail 1.2"
if (<!EVALUATED("false")!>and1 != true<!>) return "Fail 2.1"
if (<!EVALUATED("false")!>and2 != false<!>) return "Fail 2.2"
if (<!EVALUATED("false")!>and3 != false<!>) return "Fail 2.3"
if (<!EVALUATED("false")!>and4 != false<!>) return "Fail 2.4"
if (<!EVALUATED("true")!>and1<!>.id() != true) return "Fail 2.1"
if (<!EVALUATED("false")!>and2<!>.id() != false) return "Fail 2.2"
if (<!EVALUATED("false")!>and3<!>.id() != false) return "Fail 2.3"
if (<!EVALUATED("false")!>and4<!>.id() != false) return "Fail 2.4"
if (<!EVALUATED("false")!>or1 != true<!>) return "Fail 3.1"
if (<!EVALUATED("false")!>or2 != true<!>) return "Fail 3.2"
if (<!EVALUATED("false")!>or3 != true<!>) return "Fail 3.3"
if (<!EVALUATED("false")!>or4 != false<!>) return "Fail 3.4"
if (<!EVALUATED("true")!>or1<!>.id() != true) return "Fail 3.1"
if (<!EVALUATED("true")!>or2<!>.id() != true) return "Fail 3.2"
if (<!EVALUATED("true")!>or3<!>.id() != true) return "Fail 3.3"
if (<!EVALUATED("false")!>or4<!>.id() != false) return "Fail 3.4"
if (<!EVALUATED("false")!>xor1 != false<!>) return "Fail 4.1"
if (<!EVALUATED("false")!>xor2 != true<!>) return "Fail 4.2"
if (<!EVALUATED("false")!>xor3 != true<!>) return "Fail 4.3"
if (<!EVALUATED("false")!>xor4 != false<!>) return "Fail 4.4"
if (<!EVALUATED("false")!>xor1<!>.id() != false) return "Fail 4.1"
if (<!EVALUATED("true")!>xor2<!>.id() != true) return "Fail 4.2"
if (<!EVALUATED("true")!>xor3<!>.id() != true) return "Fail 4.3"
if (<!EVALUATED("false")!>xor4<!>.id() != false) return "Fail 4.4"
if (<!EVALUATED("false")!>compareTo1 != 0<!>) return "Fail 5.1"
if (<!EVALUATED("false")!>compareTo2 != 1<!>) return "Fail 5.2"
if (<!EVALUATED("false")!>compareTo3 != -1<!>) return "Fail 5.3"
if (<!EVALUATED("false")!>compareTo4 != 0<!>) return "Fail 5.4"
if (<!EVALUATED("0")!>compareTo1<!>.id() != 0) return "Fail 5.1"
if (<!EVALUATED("1")!>compareTo2<!>.id() != 1) return "Fail 5.2"
if (<!EVALUATED("-1")!>compareTo3<!>.id() != -1) return "Fail 5.3"
if (<!EVALUATED("0")!>compareTo4<!>.id() != 0) return "Fail 5.4"
if (<!EVALUATED("false")!>equals1 != true<!>) return "Fail 6.1"
if (<!EVALUATED("false")!>equals2 != false<!>) return "Fail 6.2"
if (<!EVALUATED("false")!>equals3 != false<!>) return "Fail 6.3"
if (<!EVALUATED("false")!>equals4 != true<!>) return "Fail 6.4"
if (<!EVALUATED("true")!>equals1<!>.id() != true) return "Fail 6.1"
if (<!EVALUATED("false")!>equals2<!>.id() != false) return "Fail 6.2"
if (<!EVALUATED("false")!>equals3<!>.id() != false) return "Fail 6.3"
if (<!EVALUATED("true")!>equals4<!>.id() != true) return "Fail 6.4"
if (<!EVALUATED("false")!>toString1 != "true"<!>) return "Fail 7.1"
if (<!EVALUATED("false")!>toString2 != "false"<!>) return "Fail 7.2"
if (<!EVALUATED("true")!>toString1<!>.id() != "true") return "Fail 7.1"
if (<!EVALUATED("false")!>toString2<!>.id() != "false") return "Fail 7.2"
return "OK"
}
@@ -2,6 +2,7 @@
// TARGET_BACKEND: NATIVE
// TARGET_BACKEND: JS_IR
// IGNORE_BACKEND_K1: NATIVE
fun <T> T.id() = this
const val minusOneVal = (-1).<!EVALUATED("-1")!>toByte()<!>
const val oneVal = 1.<!EVALUATED("1")!>toByte()<!>
@@ -92,80 +93,80 @@ const val toString1 = oneVal.<!EVALUATED("1")!>toString()<!>
const val toString2 = twoVal.<!EVALUATED("2")!>toString()<!>
fun box(): String {
if (<!EVALUATED("false")!>compareTo1 != -1<!>) return "Fail 1.1"
if (<!EVALUATED("false")!>compareTo2 != 0<!>) return "Fail 1.2"
if (<!EVALUATED("false")!>compareTo3 != 1<!>) return "Fail 1.3"
if (<!EVALUATED("false")!>compareTo4 != 0<!>) return "Fail 1.4"
if (<!EVALUATED("false")!>compareTo5 != 0<!>) return "Fail 1.5"
if (<!EVALUATED("false")!>compareTo6 != 0<!>) return "Fail 1.6"
if (<!EVALUATED("false")!>compareTo7 != 0<!>) return "Fail 1.7"
if (<!EVALUATED("false")!>compareTo8 != 0<!>) return "Fail 1.8"
if (<!EVALUATED("-1")!>compareTo1<!>.id() != -1) return "Fail 1.1"
if (<!EVALUATED("0")!>compareTo2<!>.id() != 0) return "Fail 1.2"
if (<!EVALUATED("1")!>compareTo3<!>.id() != 1) return "Fail 1.3"
if (<!EVALUATED("0")!>compareTo4<!>.id() != 0) return "Fail 1.4"
if (<!EVALUATED("0")!>compareTo5<!>.id() != 0) return "Fail 1.5"
if (<!EVALUATED("0")!>compareTo6<!>.id() != 0) return "Fail 1.6"
if (<!EVALUATED("0")!>compareTo7<!>.id() != 0) return "Fail 1.7"
if (<!EVALUATED("0")!>compareTo8<!>.id() != 0) return "Fail 1.8"
if (<!EVALUATED("false")!>plus1 != 3<!>) return "Fail 2.1"
if (<!EVALUATED("false")!>plus2 != 4<!>) return "Fail 2.2"
if (<!EVALUATED("false")!>plus3 != 5<!>) return "Fail 2.3"
if (<!EVALUATED("false")!>plus4 != 4<!>) return "Fail 2.4"
if (<!EVALUATED("false")!>plus5 != 4<!>) return "Fail 2.5"
if (<!EVALUATED("false")!>plus6 != 4L<!>) return "Fail 2.6"
if (<!EVALUATED("false")!>plus7 != 4.0f<!>) return "Fail 2.7"
if (<!EVALUATED("false")!>plus8 != 4.0<!>) return "Fail 2.8"
if (<!EVALUATED("3")!>plus1<!>.id() != 3) return "Fail 2.1"
if (<!EVALUATED("4")!>plus2<!>.id() != 4) return "Fail 2.2"
if (<!EVALUATED("5")!>plus3<!>.id() != 5) return "Fail 2.3"
if (<!EVALUATED("4")!>plus4<!>.id() != 4) return "Fail 2.4"
if (<!EVALUATED("4")!>plus5<!>.id() != 4) return "Fail 2.5"
if (<!EVALUATED("4")!>plus6<!>.id() != 4L) return "Fail 2.6"
if (<!EVALUATED("4.0")!>plus7<!>.id() != 4.0f) return "Fail 2.7"
if (<!EVALUATED("4.0")!>plus8<!>.id() != 4.0) return "Fail 2.8"
if (<!EVALUATED("false")!>minus1 != -1<!>) return "Fail 3.1"
if (<!EVALUATED("false")!>minus2 != 0<!>) return "Fail 3.2"
if (<!EVALUATED("false")!>minus3 != 1<!>) return "Fail 3.3"
if (<!EVALUATED("false")!>minus4 != 0<!>) return "Fail 3.4"
if (<!EVALUATED("false")!>minus5 != 0<!>) return "Fail 3.5"
if (<!EVALUATED("false")!>minus6 != 0L<!>) return "Fail 3.6"
if (<!EVALUATED("false")!>minus7 != 0.0f<!>) return "Fail 3.7"
if (<!EVALUATED("false")!>minus8 != 0.0<!>) return "Fail 3.8"
if (<!EVALUATED("-1")!>minus1<!>.id() != -1) return "Fail 3.1"
if (<!EVALUATED("0")!>minus2<!>.id() != 0) return "Fail 3.2"
if (<!EVALUATED("1")!>minus3<!>.id() != 1) return "Fail 3.3"
if (<!EVALUATED("0")!>minus4<!>.id() != 0) return "Fail 3.4"
if (<!EVALUATED("0")!>minus5<!>.id() != 0) return "Fail 3.5"
if (<!EVALUATED("0")!>minus6<!>.id() != 0L) return "Fail 3.6"
if (<!EVALUATED("0.0")!>minus7<!>.id() != 0.0f) return "Fail 3.7"
if (<!EVALUATED("0.0")!>minus8<!>.id() != 0.0) return "Fail 3.8"
if (<!EVALUATED("false")!>times1 != 2<!>) return "Fail 4.1"
if (<!EVALUATED("false")!>times2 != 4<!>) return "Fail 4.2"
if (<!EVALUATED("false")!>times3 != 6<!>) return "Fail 4.3"
if (<!EVALUATED("false")!>times4 != 4<!>) return "Fail 4.4"
if (<!EVALUATED("false")!>times5 != 4<!>) return "Fail 4.5"
if (<!EVALUATED("false")!>times6 != 4L<!>) return "Fail 4.6"
if (<!EVALUATED("false")!>times7 != 4.0f<!>) return "Fail 4.7"
if (<!EVALUATED("false")!>times8 != 4.0<!>) return "Fail 4.8"
if (<!EVALUATED("2")!>times1<!>.id() != 2) return "Fail 4.1"
if (<!EVALUATED("4")!>times2<!>.id() != 4) return "Fail 4.2"
if (<!EVALUATED("6")!>times3<!>.id() != 6) return "Fail 4.3"
if (<!EVALUATED("4")!>times4<!>.id() != 4) return "Fail 4.4"
if (<!EVALUATED("4")!>times5<!>.id() != 4) return "Fail 4.5"
if (<!EVALUATED("4")!>times6<!>.id() != 4L) return "Fail 4.6"
if (<!EVALUATED("4.0")!>times7<!>.id() != 4.0f) return "Fail 4.7"
if (<!EVALUATED("4.0")!>times8<!>.id() != 4.0) return "Fail 4.8"
if (<!EVALUATED("false")!>div1 != 0<!>) return "Fail 5.1"
if (<!EVALUATED("false")!>div2 != 1<!>) return "Fail 5.2"
if (<!EVALUATED("false")!>div3 != 1<!>) return "Fail 5.3"
if (<!EVALUATED("false")!>div4 != 1<!>) return "Fail 5.4"
if (<!EVALUATED("false")!>div5 != 1<!>) return "Fail 5.5"
if (<!EVALUATED("false")!>div6 != 1L<!>) return "Fail 5.6"
if (<!EVALUATED("false")!>div7 != 1.0f<!>) return "Fail 5.7"
if (<!EVALUATED("false")!>div8 != 1.0<!>) return "Fail 5.8"
if (<!EVALUATED("0")!>div1<!>.id() != 0) return "Fail 5.1"
if (<!EVALUATED("1")!>div2<!>.id() != 1) return "Fail 5.2"
if (<!EVALUATED("1")!>div3<!>.id() != 1) return "Fail 5.3"
if (<!EVALUATED("1")!>div4<!>.id() != 1) return "Fail 5.4"
if (<!EVALUATED("1")!>div5<!>.id() != 1) return "Fail 5.5"
if (<!EVALUATED("1")!>div6<!>.id() != 1L) return "Fail 5.6"
if (<!EVALUATED("1.0")!>div7<!>.id() != 1.0f) return "Fail 5.7"
if (<!EVALUATED("1.0")!>div8<!>.id() != 1.0) return "Fail 5.8"
if (<!EVALUATED("false")!>rem1 != 1<!>) return "Fail 6.1"
if (<!EVALUATED("false")!>rem2 != 0<!>) return "Fail 6.2"
if (<!EVALUATED("false")!>rem3 != 1<!>) return "Fail 6.3"
if (<!EVALUATED("false")!>rem4 != 0<!>) return "Fail 6.4"
if (<!EVALUATED("false")!>rem5 != 0<!>) return "Fail 6.5"
if (<!EVALUATED("false")!>rem6 != 0L<!>) return "Fail 6.6"
if (<!EVALUATED("false")!>rem7 != 0.0f<!>) return "Fail 6.7"
if (<!EVALUATED("false")!>rem8 != 0.0<!>) return "Fail 6.8"
if (<!EVALUATED("1")!>rem1<!>.id() != 1) return "Fail 6.1"
if (<!EVALUATED("0")!>rem2<!>.id() != 0) return "Fail 6.2"
if (<!EVALUATED("1")!>rem3<!>.id() != 1) return "Fail 6.3"
if (<!EVALUATED("0")!>rem4<!>.id() != 0) return "Fail 6.4"
if (<!EVALUATED("0")!>rem5<!>.id() != 0) return "Fail 6.5"
if (<!EVALUATED("0")!>rem6<!>.id() != 0L) return "Fail 6.6"
if (<!EVALUATED("0.0")!>rem7<!>.id() != 0.0f) return "Fail 6.7"
if (<!EVALUATED("0.0")!>rem8<!>.id() != 0.0) return "Fail 6.8"
if (<!EVALUATED("false")!>unaryPlus1 != 1<!>) return "Fail 7.1"
if (<!EVALUATED("false")!>unaryPlus2 != -1<!>) return "Fail 7.2"
if (<!EVALUATED("false")!>unaryMinus1 != -1<!>) return "Fail 7.3"
if (<!EVALUATED("false")!>unaryMinus2 != 1<!>) return "Fail 7.4"
if (<!EVALUATED("1")!>unaryPlus1<!>.id() != 1) return "Fail 7.1"
if (<!EVALUATED("-1")!>unaryPlus2<!>.id() != -1) return "Fail 7.2"
if (<!EVALUATED("-1")!>unaryMinus1<!>.id() != -1) return "Fail 7.3"
if (<!EVALUATED("1")!>unaryMinus2<!>.id() != 1) return "Fail 7.4"
if (<!EVALUATED("false")!>convert1 != 1.toByte()<!>) return "Fail 8.1"
if (<!EVALUATED("false")!>convert2 != ''<!>) return "Fail 8.2"
if (<!EVALUATED("false")!>convert3 != 1.toShort()<!>) return "Fail 8.3"
if (<!EVALUATED("false")!>convert4 != 1<!>) return "Fail 8.4"
if (<!EVALUATED("false")!>convert5 != 1L<!>) return "Fail 8.5"
if (<!EVALUATED("false")!>convert6 != 1.0f<!>) return "Fail 8.6"
if (<!EVALUATED("false")!>convert7 != 1.0<!>) return "Fail 8.7"
if (<!EVALUATED("1")!>convert1<!>.id() != 1.<!EVALUATED("1")!>toByte()<!>) return "Fail 8.1"
if (<!EVALUATED("")!>convert2<!>.id() != '') return "Fail 8.2"
if (<!EVALUATED("1")!>convert3<!>.id() != 1.<!EVALUATED("1")!>toShort()<!>) return "Fail 8.3"
if (<!EVALUATED("1")!>convert4<!>.id() != 1) return "Fail 8.4"
if (<!EVALUATED("1")!>convert5<!>.id() != 1L) return "Fail 8.5"
if (<!EVALUATED("1.0")!>convert6<!>.id() != 1.0f) return "Fail 8.6"
if (<!EVALUATED("1.0")!>convert7<!>.id() != 1.0) return "Fail 8.7"
if (<!EVALUATED("false")!>equals1 != false<!>) return "Fail 9.1"
if (<!EVALUATED("false")!>equals2 != true<!>) return "Fail 9.2"
if (<!EVALUATED("false")!>equals3 != false<!>) return "Fail 9.3"
if (<!EVALUATED("false")!>equals4 != false<!>) return "Fail 9.4"
if (<!EVALUATED("false")!>equals1<!>.id() != false) return "Fail 9.1"
if (<!EVALUATED("true")!>equals2<!>.id() != true) return "Fail 9.2"
if (<!EVALUATED("false")!>equals3<!>.id() != false) return "Fail 9.3"
if (<!EVALUATED("false")!>equals4<!>.id() != false) return "Fail 9.4"
if (<!EVALUATED("false")!>toString1 != "1"<!>) return "Fail 10.1"
if (<!EVALUATED("false")!>toString2 != "2"<!>) return "Fail 10.2"
if (<!EVALUATED("1")!>toString1<!>.id() != "1") return "Fail 10.1"
if (<!EVALUATED("2")!>toString2<!>.id() != "2") return "Fail 10.2"
return "OK"
}
@@ -4,6 +4,7 @@
// `Char.equals(Char)` will not be evaluated in K1
// IGNORE_BACKEND_K1: NATIVE
// WITH_STDLIB
fun <T> T.id() = this
const val oneVal = <!EVALUATED("1")!>'1'<!>
const val twoVal = <!EVALUATED("2")!>'2'<!>
@@ -54,45 +55,45 @@ const val code3 = threeVal.<!EVALUATED("51")!>code<!>
const val code4 = fourVal.<!EVALUATED("52")!>code<!>
fun box(): String {
if (<!EVALUATED("false")!>compareTo1 != -1<!>) return "Fail 1.1"
if (<!EVALUATED("false")!>compareTo2 != 0<!>) return "Fail 1.2"
if (<!EVALUATED("false")!>compareTo3 != 1<!>) return "Fail 1.3"
if (<!EVALUATED("false")!>compareTo4 != 1<!>) return "Fail 1.4"
if (<!EVALUATED("-1")!>compareTo1<!>.id() != -1) return "Fail 1.1"
if (<!EVALUATED("0")!>compareTo2<!>.id() != 0) return "Fail 1.2"
if (<!EVALUATED("1")!>compareTo3<!>.id() != 1) return "Fail 1.3"
if (<!EVALUATED("1")!>compareTo4<!>.id() != 1) return "Fail 1.4"
if (<!EVALUATED("false")!>plus1 != '6'<!>) return "Fail 2.1"
if (<!EVALUATED("false")!>plus2 != '7'<!>) return "Fail 2.2"
if (<!EVALUATED("false")!>plus3 != '8'<!>) return "Fail 2.3"
if (<!EVALUATED("false")!>plus4 != '9'<!>) return "Fail 2.4"
if (<!EVALUATED("6")!>plus1<!>.id() != '6') return "Fail 2.1"
if (<!EVALUATED("7")!>plus2<!>.id() != '7') return "Fail 2.2"
if (<!EVALUATED("8")!>plus3<!>.id() != '8') return "Fail 2.3"
if (<!EVALUATED("9")!>plus4<!>.id() != '9') return "Fail 2.4"
if (<!EVALUATED("false")!>minusChar1 != -1<!>) return "Fail 3.1"
if (<!EVALUATED("false")!>minusChar2 != 0<!>) return "Fail 3.2"
if (<!EVALUATED("false")!>minusChar3 != 1<!>) return "Fail 3.3"
if (<!EVALUATED("false")!>minusChar4 != 2<!>) return "Fail 3.4"
if (<!EVALUATED("-1")!>minusChar1<!>.id() != -1) return "Fail 3.1"
if (<!EVALUATED("0")!>minusChar2<!>.id() != 0) return "Fail 3.2"
if (<!EVALUATED("1")!>minusChar3<!>.id() != 1) return "Fail 3.3"
if (<!EVALUATED("2")!>minusChar4<!>.id() != 2) return "Fail 3.4"
if (<!EVALUATED("false")!>minusInt1 != ','<!>) return "Fail 4.1"
if (<!EVALUATED("false")!>minusInt2 != '-'<!>) return "Fail 4.2"
if (<!EVALUATED("false")!>minusInt3 != '.'<!>) return "Fail 4.3"
if (<!EVALUATED("false")!>minusInt4 != '/'<!>) return "Fail 4.4"
if (<!EVALUATED(",")!>minusInt1<!>.id() != ',') return "Fail 4.1"
if (<!EVALUATED("-")!>minusInt2<!>.id() != '-') return "Fail 4.2"
if (<!EVALUATED(".")!>minusInt3<!>.id() != '.') return "Fail 4.3"
if (<!EVALUATED("/")!>minusInt4<!>.id() != '/') return "Fail 4.4"
if (<!EVALUATED("false")!>convert1 != 49.toByte()<!>) return "Fail 5.1"
if (<!EVALUATED("false")!>convert2 != '1'<!>) return "Fail 5.2"
if (<!EVALUATED("false")!>convert3 != 49.toShort()<!>) return "Fail 5.3"
if (<!EVALUATED("false")!>convert4 != 49<!>) return "Fail 5.4"
if (<!EVALUATED("false")!>convert5 != 49L<!>) return "Fail 5.5"
if (<!EVALUATED("false")!>convert6 != 49.0f<!>) return "Fail 5.6"
if (<!EVALUATED("false")!>convert7 != 49.0<!>) return "Fail 5.7"
if (<!EVALUATED("49")!>convert1<!>.id() != 49.<!EVALUATED("49")!>toByte()<!>) return "Fail 5.1"
if (<!EVALUATED("1")!>convert2<!>.id() != '1') return "Fail 5.2"
if (<!EVALUATED("49")!>convert3<!>.id() != 49.<!EVALUATED("49")!>toShort()<!>) return "Fail 5.3"
if (<!EVALUATED("49")!>convert4<!>.id() != 49) return "Fail 5.4"
if (<!EVALUATED("49")!>convert5<!>.id() != 49L) return "Fail 5.5"
if (<!EVALUATED("49.0")!>convert6<!>.id() != 49.0f) return "Fail 5.6"
if (<!EVALUATED("49.0")!>convert7<!>.id() != 49.0) return "Fail 5.7"
if (<!EVALUATED("false")!>equals1 != false<!>) return "Fail 6.1"
if (<!EVALUATED("false")!>equals2 != true<!>) return "Fail 6.2"
if (<!EVALUATED("false")!>equals3 != false<!>) return "Fail 6.3"
if (<!EVALUATED("false")!>equals4 != false<!>) return "Fail 6.4"
if (<!EVALUATED("false")!>equals1<!>.id() != false) return "Fail 6.1"
if (<!EVALUATED("true")!>equals2<!>.id() != true) return "Fail 6.2"
if (<!EVALUATED("false")!>equals3<!>.id() != false) return "Fail 6.3"
if (<!EVALUATED("false")!>equals4<!>.id() != false) return "Fail 6.4"
if (<!EVALUATED("false")!>toString1 != "1"<!>) return "Fail 7.1"
if (<!EVALUATED("false")!>toString2 != "2"<!>) return "Fail 7.2"
if (<!EVALUATED("1")!>toString1<!>.id() != "1") return "Fail 7.1"
if (<!EVALUATED("2")!>toString2<!>.id() != "2") return "Fail 7.2"
if (<!EVALUATED("false")!>code1 != 49<!>) return "Fail 8.1"
if (<!EVALUATED("false")!>code2 != 50<!>) return "Fail 8.2"
if (<!EVALUATED("false")!>code3 != 51<!>) return "Fail 8.3"
if (<!EVALUATED("false")!>code4 != 52<!>) return "Fail 8.4"
if (<!EVALUATED("49")!>code1<!>.id() != 49) return "Fail 8.1"
if (<!EVALUATED("50")!>code2<!>.id() != 50) return "Fail 8.2"
if (<!EVALUATED("51")!>code3<!>.id() != 51) return "Fail 8.3"
if (<!EVALUATED("52")!>code4<!>.id() != 52) return "Fail 8.4"
return "OK"
}
@@ -2,6 +2,7 @@
// TARGET_BACKEND: NATIVE
// TARGET_BACKEND: JS_IR
// IGNORE_BACKEND_K1: NATIVE
fun <T> T.id() = this
const val minusOneVal = <!EVALUATED("-1.0")!>-1.0<!>
const val oneVal = <!EVALUATED("1.0")!>1.0<!>
@@ -88,75 +89,75 @@ const val equals3 = <!EVALUATED("false")!>threeVal == twoVal<!>
const val equals4 = <!EVALUATED("false")!>fourVal == twoVal<!>
fun box(): String {
if (<!EVALUATED("false")!>compareTo1 != -1<!>) return "Fail 1.1"
if (<!EVALUATED("false")!>compareTo2 != 0<!>) return "Fail 1.2"
if (<!EVALUATED("false")!>compareTo3 != 1<!>) return "Fail 1.3"
if (<!EVALUATED("false")!>compareTo4 != 0<!>) return "Fail 1.4"
if (<!EVALUATED("false")!>compareTo5 != 0<!>) return "Fail 1.5"
if (<!EVALUATED("false")!>compareTo6 != 0<!>) return "Fail 1.6"
if (<!EVALUATED("false")!>compareTo7 != 0<!>) return "Fail 1.7"
if (<!EVALUATED("false")!>compareTo8 != 0<!>) return "Fail 1.8"
if (<!EVALUATED("-1")!>compareTo1<!>.id() != -1) return "Fail 1.1"
if (<!EVALUATED("0")!>compareTo2<!>.id() != 0) return "Fail 1.2"
if (<!EVALUATED("1")!>compareTo3<!>.id() != 1) return "Fail 1.3"
if (<!EVALUATED("0")!>compareTo4<!>.id() != 0) return "Fail 1.4"
if (<!EVALUATED("0")!>compareTo5<!>.id() != 0) return "Fail 1.5"
if (<!EVALUATED("0")!>compareTo6<!>.id() != 0) return "Fail 1.6"
if (<!EVALUATED("0")!>compareTo7<!>.id() != 0) return "Fail 1.7"
if (<!EVALUATED("0")!>compareTo8<!>.id() != 0) return "Fail 1.8"
if (<!EVALUATED("false")!>plus1 != 3.0<!>) return "Fail 2.1"
if (<!EVALUATED("false")!>plus2 != 4.0<!>) return "Fail 2.2"
if (<!EVALUATED("false")!>plus3 != 5.0<!>) return "Fail 2.3"
if (<!EVALUATED("false")!>plus4 != 4.0<!>) return "Fail 2.4"
if (<!EVALUATED("false")!>plus5 != 4.0<!>) return "Fail 2.5"
if (<!EVALUATED("false")!>plus6 != 4.0<!>) return "Fail 2.6"
if (<!EVALUATED("false")!>plus7 != 4.0<!>) return "Fail 2.7"
if (<!EVALUATED("false")!>plus8 != 4.0<!>) return "Fail 2.8"
if (<!EVALUATED("3.0")!>plus1<!>.id() != 3.0) return "Fail 2.1"
if (<!EVALUATED("4.0")!>plus2<!>.id() != 4.0) return "Fail 2.2"
if (<!EVALUATED("5.0")!>plus3<!>.id() != 5.0) return "Fail 2.3"
if (<!EVALUATED("4.0")!>plus4<!>.id() != 4.0) return "Fail 2.4"
if (<!EVALUATED("4.0")!>plus5<!>.id() != 4.0) return "Fail 2.5"
if (<!EVALUATED("4.0")!>plus6<!>.id() != 4.0) return "Fail 2.6"
if (<!EVALUATED("4.0")!>plus7<!>.id() != 4.0) return "Fail 2.7"
if (<!EVALUATED("4.0")!>plus8<!>.id() != 4.0) return "Fail 2.8"
if (<!EVALUATED("false")!>minus1 != -1.0<!>) return "Fail 3.1"
if (<!EVALUATED("false")!>minus2 != 0.0<!>) return "Fail 3.2"
if (<!EVALUATED("false")!>minus3 != 1.0<!>) return "Fail 3.3"
if (<!EVALUATED("false")!>minus4 != 0.0<!>) return "Fail 3.4"
if (<!EVALUATED("false")!>minus5 != 0.0<!>) return "Fail 3.5"
if (<!EVALUATED("false")!>minus6 != 0.0<!>) return "Fail 3.6"
if (<!EVALUATED("false")!>minus7 != 0.0<!>) return "Fail 3.7"
if (<!EVALUATED("false")!>minus8 != 0.0<!>) return "Fail 3.8"
if (<!EVALUATED("-1.0")!>minus1<!>.id() != <!EVALUATED("-1.0")!>-1.0<!>) return "Fail 3.1"
if (<!EVALUATED("0.0")!>minus2<!>.id() != 0.0) return "Fail 3.2"
if (<!EVALUATED("1.0")!>minus3<!>.id() != 1.0) return "Fail 3.3"
if (<!EVALUATED("0.0")!>minus4<!>.id() != 0.0) return "Fail 3.4"
if (<!EVALUATED("0.0")!>minus5<!>.id() != 0.0) return "Fail 3.5"
if (<!EVALUATED("0.0")!>minus6<!>.id() != 0.0) return "Fail 3.6"
if (<!EVALUATED("0.0")!>minus7<!>.id() != 0.0) return "Fail 3.7"
if (<!EVALUATED("0.0")!>minus8<!>.id() != 0.0) return "Fail 3.8"
if (<!EVALUATED("false")!>times1 != 2.0<!>) return "Fail 4.1"
if (<!EVALUATED("false")!>times2 != 4.0<!>) return "Fail 4.2"
if (<!EVALUATED("false")!>times3 != 6.0<!>) return "Fail 4.3"
if (<!EVALUATED("false")!>times4 != 4.0<!>) return "Fail 4.4"
if (<!EVALUATED("false")!>times5 != 4.0<!>) return "Fail 4.5"
if (<!EVALUATED("false")!>times6 != 4.0<!>) return "Fail 4.6"
if (<!EVALUATED("false")!>times7 != 4.0<!>) return "Fail 4.7"
if (<!EVALUATED("false")!>times8 != 4.0<!>) return "Fail 4.8"
if (<!EVALUATED("2.0")!>times1<!>.id() != 2.0) return "Fail 4.1"
if (<!EVALUATED("4.0")!>times2<!>.id() != 4.0) return "Fail 4.2"
if (<!EVALUATED("6.0")!>times3<!>.id() != 6.0) return "Fail 4.3"
if (<!EVALUATED("4.0")!>times4<!>.id() != 4.0) return "Fail 4.4"
if (<!EVALUATED("4.0")!>times5<!>.id() != 4.0) return "Fail 4.5"
if (<!EVALUATED("4.0")!>times6<!>.id() != 4.0) return "Fail 4.6"
if (<!EVALUATED("4.0")!>times7<!>.id() != 4.0) return "Fail 4.7"
if (<!EVALUATED("4.0")!>times8<!>.id() != 4.0) return "Fail 4.8"
if (<!EVALUATED("false")!>div1 != 0.5<!>) return "Fail 5.1"
if (<!EVALUATED("false")!>div2 != 1.0<!>) return "Fail 5.2"
if (<!EVALUATED("false")!>div3 != 1.5<!>) return "Fail 5.3"
if (<!EVALUATED("false")!>div4 != 1.0<!>) return "Fail 5.4"
if (<!EVALUATED("false")!>div5 != 1.0<!>) return "Fail 5.5"
if (<!EVALUATED("false")!>div6 != 1.0<!>) return "Fail 5.6"
if (<!EVALUATED("false")!>div7 != 1.0<!>) return "Fail 5.7"
if (<!EVALUATED("false")!>div8 != 1.0<!>) return "Fail 5.8"
if (<!EVALUATED("0.5")!>div1<!>.id() != 0.5) return "Fail 5.1"
if (<!EVALUATED("1.0")!>div2<!>.id() != 1.0) return "Fail 5.2"
if (<!EVALUATED("1.5")!>div3<!>.id() != 1.5) return "Fail 5.3"
if (<!EVALUATED("1.0")!>div4<!>.id() != 1.0) return "Fail 5.4"
if (<!EVALUATED("1.0")!>div5<!>.id() != 1.0) return "Fail 5.5"
if (<!EVALUATED("1.0")!>div6<!>.id() != 1.0) return "Fail 5.6"
if (<!EVALUATED("1.0")!>div7<!>.id() != 1.0) return "Fail 5.7"
if (<!EVALUATED("1.0")!>div8<!>.id() != 1.0) return "Fail 5.8"
if (<!EVALUATED("false")!>rem1 != 1.0<!>) return "Fail 6.1"
if (<!EVALUATED("false")!>rem2 != 0.0<!>) return "Fail 6.2"
if (<!EVALUATED("false")!>rem3 != 1.0<!>) return "Fail 6.3"
if (<!EVALUATED("false")!>rem4 != 0.0<!>) return "Fail 6.4"
if (<!EVALUATED("false")!>rem5 != 0.0<!>) return "Fail 6.5"
if (<!EVALUATED("false")!>rem6 != 0.0<!>) return "Fail 6.6"
if (<!EVALUATED("false")!>rem7 != 0.0<!>) return "Fail 6.7"
if (<!EVALUATED("false")!>rem8 != 0.0<!>) return "Fail 6.8"
if (<!EVALUATED("1.0")!>rem1<!>.id() != 1.0) return "Fail 6.1"
if (<!EVALUATED("0.0")!>rem2<!>.id() != 0.0) return "Fail 6.2"
if (<!EVALUATED("1.0")!>rem3<!>.id() != 1.0) return "Fail 6.3"
if (<!EVALUATED("0.0")!>rem4<!>.id() != 0.0) return "Fail 6.4"
if (<!EVALUATED("0.0")!>rem5<!>.id() != 0.0) return "Fail 6.5"
if (<!EVALUATED("0.0")!>rem6<!>.id() != 0.0) return "Fail 6.6"
if (<!EVALUATED("0.0")!>rem7<!>.id() != 0.0) return "Fail 6.7"
if (<!EVALUATED("0.0")!>rem8<!>.id() != 0.0) return "Fail 6.8"
if (<!EVALUATED("false")!>unaryPlus1 != 1.0<!>) return "Fail 7.1"
if (<!EVALUATED("false")!>unaryPlus2 != -1.0<!>) return "Fail 7.2"
if (<!EVALUATED("false")!>unaryMinus1 != -1.0<!>) return "Fail 7.3"
if (<!EVALUATED("false")!>unaryMinus2 != 1.0<!>) return "Fail 7.4"
if (<!EVALUATED("1.0")!>unaryPlus1<!>.id() != 1.0) return "Fail 7.1"
if (<!EVALUATED("-1.0")!>unaryPlus2<!>.id() != <!EVALUATED("-1.0")!>-1.0<!>) return "Fail 7.2"
if (<!EVALUATED("-1.0")!>unaryMinus1<!>.id() != <!EVALUATED("-1.0")!>-1.0<!>) return "Fail 7.3"
if (<!EVALUATED("1.0")!>unaryMinus2<!>.id() != 1.0) return "Fail 7.4"
if (<!EVALUATED("false")!>convert1 != ''<!>) return "Fail 8.1"
if (<!EVALUATED("false")!>convert2 != 1<!>) return "Fail 8.2"
if (<!EVALUATED("false")!>convert3 != 1L<!>) return "Fail 8.3"
if (<!EVALUATED("false")!>convert4 != 1.0f<!>) return "Fail 8.4"
if (<!EVALUATED("false")!>convert5 != 1.0<!>) return "Fail 8.5"
if (<!EVALUATED("")!>convert1<!>.id() != '') return "Fail 8.1"
if (<!EVALUATED("1")!>convert2<!>.id() != 1) return "Fail 8.2"
if (<!EVALUATED("1")!>convert3<!>.id() != 1L) return "Fail 8.3"
if (<!EVALUATED("1.0")!>convert4<!>.id() != 1.0f) return "Fail 8.4"
if (<!EVALUATED("1.0")!>convert5<!>.id() != 1.0) return "Fail 8.5"
if (<!EVALUATED("false")!>equals1 != false<!>) return "Fail 9.1"
if (<!EVALUATED("false")!>equals2 != true<!>) return "Fail 9.2"
if (<!EVALUATED("false")!>equals3 != false<!>) return "Fail 9.3"
if (<!EVALUATED("false")!>equals4 != false<!>) return "Fail 9.4"
if (<!EVALUATED("false")!>equals1<!>.id() != false) return "Fail 9.1"
if (<!EVALUATED("true")!>equals2<!>.id() != true) return "Fail 9.2"
if (<!EVALUATED("false")!>equals3<!>.id() != false) return "Fail 9.3"
if (<!EVALUATED("false")!>equals4<!>.id() != false) return "Fail 9.4"
return "OK"
}
@@ -2,6 +2,7 @@
// TARGET_BACKEND: NATIVE
// TARGET_BACKEND: JS_IR
// IGNORE_BACKEND_K1: NATIVE
fun <T> T.id() = this
const val minusOneVal = <!EVALUATED("-1.0")!>-1.0f<!>
const val oneVal = <!EVALUATED("1.0")!>1.0f<!>
@@ -88,75 +89,75 @@ const val equals3 = <!EVALUATED("false")!>threeVal == twoVal<!>
const val equals4 = <!EVALUATED("false")!>fourVal == twoVal<!>
fun box(): String {
if (<!EVALUATED("false")!>compareTo1 != -1<!>) return "Fail 1.1"
if (<!EVALUATED("false")!>compareTo2 != 0<!>) return "Fail 1.2"
if (<!EVALUATED("false")!>compareTo3 != 1<!>) return "Fail 1.3"
if (<!EVALUATED("false")!>compareTo4 != 0<!>) return "Fail 1.4"
if (<!EVALUATED("false")!>compareTo5 != 0<!>) return "Fail 1.5"
if (<!EVALUATED("false")!>compareTo6 != 0<!>) return "Fail 1.6"
if (<!EVALUATED("false")!>compareTo7 != 0<!>) return "Fail 1.7"
if (<!EVALUATED("false")!>compareTo8 != 0<!>) return "Fail 1.8"
if (<!EVALUATED("-1")!>compareTo1<!>.id() != -1) return "Fail 1.1"
if (<!EVALUATED("0")!>compareTo2<!>.id() != 0) return "Fail 1.2"
if (<!EVALUATED("1")!>compareTo3<!>.id() != 1) return "Fail 1.3"
if (<!EVALUATED("0")!>compareTo4<!>.id() != 0) return "Fail 1.4"
if (<!EVALUATED("0")!>compareTo5<!>.id() != 0) return "Fail 1.5"
if (<!EVALUATED("0")!>compareTo6<!>.id() != 0) return "Fail 1.6"
if (<!EVALUATED("0")!>compareTo7<!>.id() != 0) return "Fail 1.7"
if (<!EVALUATED("0")!>compareTo8<!>.id() != 0) return "Fail 1.8"
if (<!EVALUATED("false")!>plus1 != 3f<!>) return "Fail 2.1"
if (<!EVALUATED("false")!>plus2 != 4f<!>) return "Fail 2.2"
if (<!EVALUATED("false")!>plus3 != 5f<!>) return "Fail 2.3"
if (<!EVALUATED("false")!>plus4 != 4f<!>) return "Fail 2.4"
if (<!EVALUATED("false")!>plus5 != 4f<!>) return "Fail 2.5"
if (<!EVALUATED("false")!>plus6 != 4f<!>) return "Fail 2.6"
if (<!EVALUATED("false")!>plus7 != 4.0f<!>) return "Fail 2.7"
if (<!EVALUATED("false")!>plus8 != 4.0<!>) return "Fail 2.8"
if (<!EVALUATED("3.0")!>plus1<!>.id() != 3f) return "Fail 2.1"
if (<!EVALUATED("4.0")!>plus2<!>.id() != 4f) return "Fail 2.2"
if (<!EVALUATED("5.0")!>plus3<!>.id() != 5f) return "Fail 2.3"
if (<!EVALUATED("4.0")!>plus4<!>.id() != 4f) return "Fail 2.4"
if (<!EVALUATED("4.0")!>plus5<!>.id() != 4f) return "Fail 2.5"
if (<!EVALUATED("4.0")!>plus6<!>.id() != 4f) return "Fail 2.6"
if (<!EVALUATED("4.0")!>plus7<!>.id() != 4.0f) return "Fail 2.7"
if (<!EVALUATED("4.0")!>plus8<!>.id() != 4.0) return "Fail 2.8"
if (<!EVALUATED("false")!>minus1 != -1f<!>) return "Fail 3.1"
if (<!EVALUATED("false")!>minus2 != 0f<!>) return "Fail 3.2"
if (<!EVALUATED("false")!>minus3 != 1f<!>) return "Fail 3.3"
if (<!EVALUATED("false")!>minus4 != 0f<!>) return "Fail 3.4"
if (<!EVALUATED("false")!>minus5 != 0f<!>) return "Fail 3.5"
if (<!EVALUATED("false")!>minus6 != 0f<!>) return "Fail 3.6"
if (<!EVALUATED("false")!>minus7 != 0.0f<!>) return "Fail 3.7"
if (<!EVALUATED("false")!>minus8 != 0.0<!>) return "Fail 3.8"
if (<!EVALUATED("-1.0")!>minus1<!>.id() != <!EVALUATED("-1.0")!>-1f<!>) return "Fail 3.1"
if (<!EVALUATED("0.0")!>minus2<!>.id() != 0f) return "Fail 3.2"
if (<!EVALUATED("1.0")!>minus3<!>.id() != 1f) return "Fail 3.3"
if (<!EVALUATED("0.0")!>minus4<!>.id() != 0f) return "Fail 3.4"
if (<!EVALUATED("0.0")!>minus5<!>.id() != 0f) return "Fail 3.5"
if (<!EVALUATED("0.0")!>minus6<!>.id() != 0f) return "Fail 3.6"
if (<!EVALUATED("0.0")!>minus7<!>.id() != 0.0f) return "Fail 3.7"
if (<!EVALUATED("0.0")!>minus8<!>.id() != 0.0) return "Fail 3.8"
if (<!EVALUATED("false")!>times1 != 2f<!>) return "Fail 4.1"
if (<!EVALUATED("false")!>times2 != 4f<!>) return "Fail 4.2"
if (<!EVALUATED("false")!>times3 != 6f<!>) return "Fail 4.3"
if (<!EVALUATED("false")!>times4 != 4f<!>) return "Fail 4.4"
if (<!EVALUATED("false")!>times5 != 4f<!>) return "Fail 4.5"
if (<!EVALUATED("false")!>times6 != 4f<!>) return "Fail 4.6"
if (<!EVALUATED("false")!>times7 != 4.0f<!>) return "Fail 4.7"
if (<!EVALUATED("false")!>times8 != 4.0<!>) return "Fail 4.8"
if (<!EVALUATED("2.0")!>times1<!>.id() != 2f) return "Fail 4.1"
if (<!EVALUATED("4.0")!>times2<!>.id() != 4f) return "Fail 4.2"
if (<!EVALUATED("6.0")!>times3<!>.id() != 6f) return "Fail 4.3"
if (<!EVALUATED("4.0")!>times4<!>.id() != 4f) return "Fail 4.4"
if (<!EVALUATED("4.0")!>times5<!>.id() != 4f) return "Fail 4.5"
if (<!EVALUATED("4.0")!>times6<!>.id() != 4f) return "Fail 4.6"
if (<!EVALUATED("4.0")!>times7<!>.id() != 4.0f) return "Fail 4.7"
if (<!EVALUATED("4.0")!>times8<!>.id() != 4.0) return "Fail 4.8"
if (<!EVALUATED("false")!>div1 != 0.5f<!>) return "Fail 5.1"
if (<!EVALUATED("false")!>div2 != 1.0f<!>) return "Fail 5.2"
if (<!EVALUATED("false")!>div3 != 1.5f<!>) return "Fail 5.3"
if (<!EVALUATED("false")!>div4 != 1f<!>) return "Fail 5.4"
if (<!EVALUATED("false")!>div5 != 1f<!>) return "Fail 5.5"
if (<!EVALUATED("false")!>div6 != 1f<!>) return "Fail 5.6"
if (<!EVALUATED("false")!>div7 != 1.0f<!>) return "Fail 5.7"
if (<!EVALUATED("false")!>div8 != 1.0<!>) return "Fail 5.8"
if (<!EVALUATED("0.5")!>div1<!>.id() != 0.5f) return "Fail 5.1"
if (<!EVALUATED("1.0")!>div2<!>.id() != 1.0f) return "Fail 5.2"
if (<!EVALUATED("1.5")!>div3<!>.id() != 1.5f) return "Fail 5.3"
if (<!EVALUATED("1.0")!>div4<!>.id() != 1f) return "Fail 5.4"
if (<!EVALUATED("1.0")!>div5<!>.id() != 1f) return "Fail 5.5"
if (<!EVALUATED("1.0")!>div6<!>.id() != 1f) return "Fail 5.6"
if (<!EVALUATED("1.0")!>div7<!>.id() != 1.0f) return "Fail 5.7"
if (<!EVALUATED("1.0")!>div8<!>.id() != 1.0) return "Fail 5.8"
if (<!EVALUATED("false")!>rem1 != 1f<!>) return "Fail 6.1"
if (<!EVALUATED("false")!>rem2 != 0f<!>) return "Fail 6.2"
if (<!EVALUATED("false")!>rem3 != 1f<!>) return "Fail 6.3"
if (<!EVALUATED("false")!>rem4 != 0f<!>) return "Fail 6.4"
if (<!EVALUATED("false")!>rem5 != 0f<!>) return "Fail 6.5"
if (<!EVALUATED("false")!>rem6 != 0f<!>) return "Fail 6.6"
if (<!EVALUATED("false")!>rem7 != 0.0f<!>) return "Fail 6.7"
if (<!EVALUATED("false")!>rem8 != 0.0<!>) return "Fail 6.8"
if (<!EVALUATED("1.0")!>rem1<!>.id() != 1f) return "Fail 6.1"
if (<!EVALUATED("0.0")!>rem2<!>.id() != 0f) return "Fail 6.2"
if (<!EVALUATED("1.0")!>rem3<!>.id() != 1f) return "Fail 6.3"
if (<!EVALUATED("0.0")!>rem4<!>.id() != 0f) return "Fail 6.4"
if (<!EVALUATED("0.0")!>rem5<!>.id() != 0f) return "Fail 6.5"
if (<!EVALUATED("0.0")!>rem6<!>.id() != 0f) return "Fail 6.6"
if (<!EVALUATED("0.0")!>rem7<!>.id() != 0.0f) return "Fail 6.7"
if (<!EVALUATED("0.0")!>rem8<!>.id() != 0.0) return "Fail 6.8"
if (<!EVALUATED("false")!>unaryPlus1 != 1f<!>) return "Fail 7.1"
if (<!EVALUATED("false")!>unaryPlus2 != -1f<!>) return "Fail 7.2"
if (<!EVALUATED("false")!>unaryMinus1 != -1f<!>) return "Fail 7.3"
if (<!EVALUATED("false")!>unaryMinus2 != 1f<!>) return "Fail 7.4"
if (<!EVALUATED("1.0")!>unaryPlus1<!>.id() != 1f) return "Fail 7.1"
if (<!EVALUATED("-1.0")!>unaryPlus2<!>.id() != <!EVALUATED("-1.0")!>-1f<!>) return "Fail 7.2"
if (<!EVALUATED("-1.0")!>unaryMinus1<!>.id() != <!EVALUATED("-1.0")!>-1f<!>) return "Fail 7.3"
if (<!EVALUATED("1.0")!>unaryMinus2<!>.id() != 1f) return "Fail 7.4"
if (<!EVALUATED("false")!>convert1 != ''<!>) return "Fail 8.1"
if (<!EVALUATED("false")!>convert2 != 1<!>) return "Fail 8.2"
if (<!EVALUATED("false")!>convert3 != 1L<!>) return "Fail 8.3"
if (<!EVALUATED("false")!>convert4 != 1.0f<!>) return "Fail 8.4"
if (<!EVALUATED("false")!>convert5 != 1.0<!>) return "Fail 8.5"
if (<!EVALUATED("")!>convert1<!>.id() != '') return "Fail 8.1"
if (<!EVALUATED("1")!>convert2<!>.id() != 1) return "Fail 8.2"
if (<!EVALUATED("1")!>convert3<!>.id() != 1L) return "Fail 8.3"
if (<!EVALUATED("1.0")!>convert4<!>.id() != 1.0f) return "Fail 8.4"
if (<!EVALUATED("1.0")!>convert5<!>.id() != 1.0) return "Fail 8.5"
if (<!EVALUATED("false")!>equals1 != false<!>) return "Fail 9.1"
if (<!EVALUATED("false")!>equals2 != true<!>) return "Fail 9.2"
if (<!EVALUATED("false")!>equals3 != false<!>) return "Fail 9.3"
if (<!EVALUATED("false")!>equals4 != false<!>) return "Fail 9.4"
if (<!EVALUATED("false")!>equals1<!>.id() != false) return "Fail 9.1"
if (<!EVALUATED("true")!>equals2<!>.id() != true) return "Fail 9.2"
if (<!EVALUATED("false")!>equals3<!>.id() != false) return "Fail 9.3"
if (<!EVALUATED("false")!>equals4<!>.id() != false) return "Fail 9.4"
return "OK"
}
@@ -2,6 +2,7 @@
// TARGET_BACKEND: NATIVE
// TARGET_BACKEND: JS_IR
// IGNORE_BACKEND_K1: NATIVE
fun <T> T.id() = this
const val minusOneVal = <!EVALUATED("-1")!>-1<!>
const val oneVal = <!EVALUATED("1")!>1<!>
@@ -92,80 +93,80 @@ const val toString1 = oneVal.<!EVALUATED("1")!>toString()<!>
const val toString2 = twoVal.<!EVALUATED("2")!>toString()<!>
fun box(): String {
if (<!EVALUATED("false")!>compareTo1 != -1<!>) return "Fail 1.1"
if (<!EVALUATED("false")!>compareTo2 != 0<!>) return "Fail 1.2"
if (<!EVALUATED("false")!>compareTo3 != 1<!>) return "Fail 1.3"
if (<!EVALUATED("false")!>compareTo4 != 0<!>) return "Fail 1.4"
if (<!EVALUATED("false")!>compareTo5 != 0<!>) return "Fail 1.5"
if (<!EVALUATED("false")!>compareTo6 != 0<!>) return "Fail 1.6"
if (<!EVALUATED("false")!>compareTo7 != 0<!>) return "Fail 1.7"
if (<!EVALUATED("false")!>compareTo8 != 0<!>) return "Fail 1.8"
if (<!EVALUATED("-1")!>compareTo1<!>.id() != -1) return "Fail 1.1"
if (<!EVALUATED("0")!>compareTo2<!>.id() != 0) return "Fail 1.2"
if (<!EVALUATED("1")!>compareTo3<!>.id() != 1) return "Fail 1.3"
if (<!EVALUATED("0")!>compareTo4<!>.id() != 0) return "Fail 1.4"
if (<!EVALUATED("0")!>compareTo5<!>.id() != 0) return "Fail 1.5"
if (<!EVALUATED("0")!>compareTo6<!>.id() != 0) return "Fail 1.6"
if (<!EVALUATED("0")!>compareTo7<!>.id() != 0) return "Fail 1.7"
if (<!EVALUATED("0")!>compareTo8<!>.id() != 0) return "Fail 1.8"
if (<!EVALUATED("false")!>plus1 != 3<!>) return "Fail 2.1"
if (<!EVALUATED("false")!>plus2 != 4<!>) return "Fail 2.2"
if (<!EVALUATED("false")!>plus3 != 5<!>) return "Fail 2.3"
if (<!EVALUATED("false")!>plus4 != 4<!>) return "Fail 2.4"
if (<!EVALUATED("false")!>plus5 != 4<!>) return "Fail 2.5"
if (<!EVALUATED("false")!>plus6 != 4L<!>) return "Fail 2.6"
if (<!EVALUATED("false")!>plus7 != 4.0f<!>) return "Fail 2.7"
if (<!EVALUATED("false")!>plus8 != 4.0<!>) return "Fail 2.8"
if (<!EVALUATED("3")!>plus1<!>.id() != 3) return "Fail 2.1"
if (<!EVALUATED("4")!>plus2<!>.id() != 4) return "Fail 2.2"
if (<!EVALUATED("5")!>plus3<!>.id() != 5) return "Fail 2.3"
if (<!EVALUATED("4")!>plus4<!>.id() != 4) return "Fail 2.4"
if (<!EVALUATED("4")!>plus5<!>.id() != 4) return "Fail 2.5"
if (<!EVALUATED("4")!>plus6<!>.id() != 4L) return "Fail 2.6"
if (<!EVALUATED("4.0")!>plus7<!>.id() != 4.0f) return "Fail 2.7"
if (<!EVALUATED("4.0")!>plus8<!>.id() != 4.0) return "Fail 2.8"
if (<!EVALUATED("false")!>minus1 != -1<!>) return "Fail 3.1"
if (<!EVALUATED("false")!>minus2 != 0<!>) return "Fail 3.2"
if (<!EVALUATED("false")!>minus3 != 1<!>) return "Fail 3.3"
if (<!EVALUATED("false")!>minus4 != 0<!>) return "Fail 3.4"
if (<!EVALUATED("false")!>minus5 != 0<!>) return "Fail 3.5"
if (<!EVALUATED("false")!>minus6 != 0L<!>) return "Fail 3.6"
if (<!EVALUATED("false")!>minus7 != 0.0f<!>) return "Fail 3.7"
if (<!EVALUATED("false")!>minus8 != 0.0<!>) return "Fail 3.8"
if (<!EVALUATED("-1")!>minus1<!>.id() != -1) return "Fail 3.1"
if (<!EVALUATED("0")!>minus2<!>.id() != 0) return "Fail 3.2"
if (<!EVALUATED("1")!>minus3<!>.id() != 1) return "Fail 3.3"
if (<!EVALUATED("0")!>minus4<!>.id() != 0) return "Fail 3.4"
if (<!EVALUATED("0")!>minus5<!>.id() != 0) return "Fail 3.5"
if (<!EVALUATED("0")!>minus6<!>.id() != 0L) return "Fail 3.6"
if (<!EVALUATED("0.0")!>minus7<!>.id() != 0.0f) return "Fail 3.7"
if (<!EVALUATED("0.0")!>minus8<!>.id() != 0.0) return "Fail 3.8"
if (<!EVALUATED("false")!>times1 != 2<!>) return "Fail 4.1"
if (<!EVALUATED("false")!>times2 != 4<!>) return "Fail 4.2"
if (<!EVALUATED("false")!>times3 != 6<!>) return "Fail 4.3"
if (<!EVALUATED("false")!>times4 != 4<!>) return "Fail 4.4"
if (<!EVALUATED("false")!>times5 != 4<!>) return "Fail 4.5"
if (<!EVALUATED("false")!>times6 != 4L<!>) return "Fail 4.6"
if (<!EVALUATED("false")!>times7 != 4.0f<!>) return "Fail 4.7"
if (<!EVALUATED("false")!>times8 != 4.0<!>) return "Fail 4.8"
if (<!EVALUATED("2")!>times1<!>.id() != 2) return "Fail 4.1"
if (<!EVALUATED("4")!>times2<!>.id() != 4) return "Fail 4.2"
if (<!EVALUATED("6")!>times3<!>.id() != 6) return "Fail 4.3"
if (<!EVALUATED("4")!>times4<!>.id() != 4) return "Fail 4.4"
if (<!EVALUATED("4")!>times5<!>.id() != 4) return "Fail 4.5"
if (<!EVALUATED("4")!>times6<!>.id() != 4L) return "Fail 4.6"
if (<!EVALUATED("4.0")!>times7<!>.id() != 4.0f) return "Fail 4.7"
if (<!EVALUATED("4.0")!>times8<!>.id() != 4.0) return "Fail 4.8"
if (<!EVALUATED("false")!>div1 != 0<!>) return "Fail 5.1"
if (<!EVALUATED("false")!>div2 != 1<!>) return "Fail 5.2"
if (<!EVALUATED("false")!>div3 != 1<!>) return "Fail 5.3"
if (<!EVALUATED("false")!>div4 != 1<!>) return "Fail 5.4"
if (<!EVALUATED("false")!>div5 != 1<!>) return "Fail 5.5"
if (<!EVALUATED("false")!>div6 != 1L<!>) return "Fail 5.6"
if (<!EVALUATED("false")!>div7 != 1.0f<!>) return "Fail 5.7"
if (<!EVALUATED("false")!>div8 != 1.0<!>) return "Fail 5.8"
if (<!EVALUATED("0")!>div1<!>.id() != 0) return "Fail 5.1"
if (<!EVALUATED("1")!>div2<!>.id() != 1) return "Fail 5.2"
if (<!EVALUATED("1")!>div3<!>.id() != 1) return "Fail 5.3"
if (<!EVALUATED("1")!>div4<!>.id() != 1) return "Fail 5.4"
if (<!EVALUATED("1")!>div5<!>.id() != 1) return "Fail 5.5"
if (<!EVALUATED("1")!>div6<!>.id() != 1L) return "Fail 5.6"
if (<!EVALUATED("1.0")!>div7<!>.id() != 1.0f) return "Fail 5.7"
if (<!EVALUATED("1.0")!>div8<!>.id() != 1.0) return "Fail 5.8"
if (<!EVALUATED("false")!>rem1 != 1<!>) return "Fail 6.1"
if (<!EVALUATED("false")!>rem2 != 0<!>) return "Fail 6.2"
if (<!EVALUATED("false")!>rem3 != 1<!>) return "Fail 6.3"
if (<!EVALUATED("false")!>rem4 != 0<!>) return "Fail 6.4"
if (<!EVALUATED("false")!>rem5 != 0<!>) return "Fail 6.5"
if (<!EVALUATED("false")!>rem6 != 0L<!>) return "Fail 6.6"
if (<!EVALUATED("false")!>rem7 != 0.0f<!>) return "Fail 6.7"
if (<!EVALUATED("false")!>rem8 != 0.0<!>) return "Fail 6.8"
if (<!EVALUATED("1")!>rem1<!>.id() != 1) return "Fail 6.1"
if (<!EVALUATED("0")!>rem2<!>.id() != 0) return "Fail 6.2"
if (<!EVALUATED("1")!>rem3<!>.id() != 1) return "Fail 6.3"
if (<!EVALUATED("0")!>rem4<!>.id() != 0) return "Fail 6.4"
if (<!EVALUATED("0")!>rem5<!>.id() != 0) return "Fail 6.5"
if (<!EVALUATED("0")!>rem6<!>.id() != 0L) return "Fail 6.6"
if (<!EVALUATED("0.0")!>rem7<!>.id() != 0.0f) return "Fail 6.7"
if (<!EVALUATED("0.0")!>rem8<!>.id() != 0.0) return "Fail 6.8"
if (<!EVALUATED("false")!>unaryPlus1 != 1<!>) return "Fail 7.1"
if (<!EVALUATED("false")!>unaryPlus2 != -1<!>) return "Fail 7.2"
if (<!EVALUATED("false")!>unaryMinus1 != -1<!>) return "Fail 7.3"
if (<!EVALUATED("false")!>unaryMinus2 != 1<!>) return "Fail 7.4"
if (<!EVALUATED("1")!>unaryPlus1<!>.id() != 1) return "Fail 7.1"
if (<!EVALUATED("-1")!>unaryPlus2<!>.id() != -1) return "Fail 7.2"
if (<!EVALUATED("-1")!>unaryMinus1<!>.id() != -1) return "Fail 7.3"
if (<!EVALUATED("1")!>unaryMinus2<!>.id() != 1) return "Fail 7.4"
if (<!EVALUATED("false")!>convert1 != 1.toByte()<!>) return "Fail 8.1"
if (<!EVALUATED("false")!>convert2 != ''<!>) return "Fail 8.2"
if (<!EVALUATED("false")!>convert3 != 1.toShort()<!>) return "Fail 8.3"
if (<!EVALUATED("false")!>convert4 != 1<!>) return "Fail 8.4"
if (<!EVALUATED("false")!>convert5 != 1L<!>) return "Fail 8.5"
if (<!EVALUATED("false")!>convert6 != 1.0f<!>) return "Fail 8.6"
if (<!EVALUATED("false")!>convert7 != 1.0<!>) return "Fail 8.7"
if (<!EVALUATED("1")!>convert1<!>.id() != 1.<!EVALUATED("1")!>toByte()<!>) return "Fail 8.1"
if (<!EVALUATED("")!>convert2<!>.id() != '') return "Fail 8.2"
if (<!EVALUATED("1")!>convert3<!>.id() != 1.<!EVALUATED("1")!>toShort()<!>) return "Fail 8.3"
if (<!EVALUATED("1")!>convert4<!>.id() != 1) return "Fail 8.4"
if (<!EVALUATED("1")!>convert5<!>.id() != 1L) return "Fail 8.5"
if (<!EVALUATED("1.0")!>convert6<!>.id() != 1.0f) return "Fail 8.6"
if (<!EVALUATED("1.0")!>convert7<!>.id() != 1.0) return "Fail 8.7"
if (<!EVALUATED("false")!>equals1 != false<!>) return "Fail 9.1"
if (<!EVALUATED("false")!>equals2 != true<!>) return "Fail 9.2"
if (<!EVALUATED("false")!>equals3 != false<!>) return "Fail 9.3"
if (<!EVALUATED("false")!>equals4 != false<!>) return "Fail 9.4"
if (<!EVALUATED("false")!>equals1<!>.id() != false) return "Fail 9.1"
if (<!EVALUATED("true")!>equals2<!>.id() != true) return "Fail 9.2"
if (<!EVALUATED("false")!>equals3<!>.id() != false) return "Fail 9.3"
if (<!EVALUATED("false")!>equals4<!>.id() != false) return "Fail 9.4"
if (<!EVALUATED("false")!>toString1 != "1"<!>) return "Fail 10.1"
if (<!EVALUATED("false")!>toString2 != "2"<!>) return "Fail 10.2"
if (<!EVALUATED("1")!>toString1<!>.id() != "1") return "Fail 10.1"
if (<!EVALUATED("2")!>toString2<!>.id() != "2") return "Fail 10.2"
return "OK"
}
@@ -2,6 +2,7 @@
// TARGET_BACKEND: JVM_IR
// IGNORE_BACKEND_K1: JVM_IR
// WITH_STDLIB
fun <T> T.id() = this
const val trimIndent = "123".<!EVALUATED("123")!>trimIndent()<!>
const val complexTrimIndent =
@@ -12,7 +13,7 @@ const val complexTrimIndent =
""".<!EVALUATED("ABC\n123\n456")!>trimIndent()<!>
fun box(): String {
if (<!EVALUATED("false")!>trimIndent != "123"<!>) return "Fail 1"
if (<!EVALUATED("false")!>complexTrimIndent != "ABC\n123\n456"<!>) return "Fail 2"
if (<!EVALUATED("123")!>trimIndent<!>.id() != "123") return "Fail 1"
if (<!EVALUATED("ABC\n123\n456")!>complexTrimIndent<!>.id() != "ABC\n123\n456") return "Fail 2"
return "OK"
}
@@ -2,6 +2,7 @@
// TARGET_BACKEND: JVM_IR
// IGNORE_BACKEND_K1: JVM_IR
// WITH_STDLIB
fun <T> T.id() = this
const val trimMargin = "123".<!EVALUATED("123")!>trimMargin()<!>
@@ -16,8 +17,8 @@ const val withoutMargin = """
""".<!EVALUATED("XYZ\nfoo\nbar")!>trimMargin("#")<!>
fun box(): String {
if (<!EVALUATED("false")!>trimMargin != "123"<!>) return "Fail 1"
if (<!EVALUATED("false")!>trimMarginDefault != "ABC\n123\n456"<!>) return "Fail 2"
if (<!EVALUATED("false")!>withoutMargin != "XYZ\nfoo\nbar"<!>) return "Fail 3"
if (<!EVALUATED("123")!>trimMargin<!>.id() != "123") return "Fail 1"
if (<!EVALUATED("ABC\n123\n456")!>trimMarginDefault<!>.id() != "ABC\n123\n456") return "Fail 2"
if (<!EVALUATED("XYZ\nfoo\nbar")!>withoutMargin<!>.id() != "XYZ\nfoo\nbar") return "Fail 3"
return "OK"
}
@@ -1,6 +1,7 @@
// !LANGUAGE: +IntrinsicConstEvaluation
// TARGET_BACKEND: JVM_IR
// IGNORE_BACKEND_K1: JVM_IR
fun <T> T.id() = this
enum class EnumClass {
OK, VALUE, anotherValue, WITH_UNDERSCORE
@@ -12,9 +13,9 @@ const val name3 = EnumClass.anotherValue.<!EVALUATED("anotherValue")!>name<!>
const val name4 = EnumClass.WITH_UNDERSCORE.<!EVALUATED("WITH_UNDERSCORE")!>name<!>
fun box(): String {
if (<!EVALUATED("false")!>EnumClass.OK.name != "OK"<!>) return "Fail 1"
if (<!EVALUATED("false")!>name2 != "VALUE"<!>) return "Fail 2"
if (<!EVALUATED("false")!>name3 != "anotherValue"<!>) return "Fail 3"
if (<!EVALUATED("false")!>name4 != "WITH_UNDERSCORE"<!>) return "Fail 4"
return <!EVALUATED("OK")!>name1<!>
if (EnumClass.OK.<!EVALUATED("OK")!>name<!>.id() != "OK") return "Fail 1"
if (<!EVALUATED("VALUE")!>name2<!>.id() != "VALUE") return "Fail 2"
if (<!EVALUATED("anotherValue")!>name3<!>.id() != "anotherValue") return "Fail 3"
if (<!EVALUATED("WITH_UNDERSCORE")!>name4<!>.id() != "WITH_UNDERSCORE") return "Fail 4"
return <!EVALUATED("OK")!>name1<!>.id()
}
@@ -1,5 +1,6 @@
// !LANGUAGE: +IntrinsicConstEvaluation
// TARGET_BACKEND: JVM_IR
fun <T> T.id() = this
const val trueVal = <!EVALUATED("true")!>true<!>
const val falseVal = <!EVALUATED("false")!>false<!>
@@ -93,49 +94,49 @@ const val equalsString3 = <!EVALUATED("false")!>otherStr == someStr<!>
const val equalsString4 = someStr.<!EVALUATED("false")!>equals(1)<!>
fun box(): String {
if (<!EVALUATED("false")!>equalsBoolean1 != true<!>) return "Fail 1.1"
if (<!EVALUATED("false")!>equalsBoolean2 != false<!>) return "Fail 1.2"
if (<!EVALUATED("false")!>equalsBoolean3 != false<!>) return "Fail 1.3"
if (<!EVALUATED("true")!>equalsBoolean1<!>.id() != true) return "Fail 1.1"
if (<!EVALUATED("false")!>equalsBoolean2<!>.id() != false) return "Fail 1.2"
if (<!EVALUATED("false")!>equalsBoolean3<!>.id() != false) return "Fail 1.3"
if (<!EVALUATED("false")!>equalsChar1 != false<!>) return "Fail 2.1"
if (<!EVALUATED("false")!>equalsChar2 != true<!>) return "Fail 2.2"
if (<!EVALUATED("false")!>equalsChar3 != false<!>) return "Fail 2.3"
if (<!EVALUATED("false")!>equalsChar4 != false<!>) return "Fail 2.3"
if (<!EVALUATED("false")!>equalsChar1<!>.id() != false) return "Fail 2.1"
if (<!EVALUATED("true")!>equalsChar2<!>.id() != true) return "Fail 2.2"
if (<!EVALUATED("false")!>equalsChar3<!>.id() != false) return "Fail 2.3"
if (<!EVALUATED("false")!>equalsChar4<!>.id() != false) return "Fail 2.3"
if (<!EVALUATED("false")!>equalsByte1 != false<!>) return "Fail 3.1"
if (<!EVALUATED("false")!>equalsByte2 != true<!>) return "Fail 3.2"
if (<!EVALUATED("false")!>equalsByte3 != false<!>) return "Fail 3.3"
if (<!EVALUATED("false")!>equalsByte4 != false<!>) return "Fail 3.3"
if (<!EVALUATED("false")!>equalsByte1<!>.id() != false) return "Fail 3.1"
if (<!EVALUATED("true")!>equalsByte2<!>.id() != true) return "Fail 3.2"
if (<!EVALUATED("false")!>equalsByte3<!>.id() != false) return "Fail 3.3"
if (<!EVALUATED("false")!>equalsByte4<!>.id() != false) return "Fail 3.3"
if (<!EVALUATED("false")!>equalsShort1 != false<!>) return "Fail 4.1"
if (<!EVALUATED("false")!>equalsShort2 != true<!>) return "Fail 4.2"
if (<!EVALUATED("false")!>equalsShort3 != false<!>) return "Fail 4.3"
if (<!EVALUATED("false")!>equalsShort4 != false<!>) return "Fail 4.3"
if (<!EVALUATED("false")!>equalsShort1<!>.id() != false) return "Fail 4.1"
if (<!EVALUATED("true")!>equalsShort2<!>.id() != true) return "Fail 4.2"
if (<!EVALUATED("false")!>equalsShort3<!>.id() != false) return "Fail 4.3"
if (<!EVALUATED("false")!>equalsShort4<!>.id() != false) return "Fail 4.3"
if (<!EVALUATED("false")!>equalsInt1 != false<!>) return "Fail 5.1"
if (<!EVALUATED("false")!>equalsInt2 != true<!>) return "Fail 5.2"
if (<!EVALUATED("false")!>equalsInt3 != false<!>) return "Fail 5.3"
if (<!EVALUATED("false")!>equalsInt4 != false<!>) return "Fail 5.3"
if (<!EVALUATED("false")!>equalsInt1<!>.id() != false) return "Fail 5.1"
if (<!EVALUATED("true")!>equalsInt2<!>.id() != true) return "Fail 5.2"
if (<!EVALUATED("false")!>equalsInt3<!>.id() != false) return "Fail 5.3"
if (<!EVALUATED("false")!>equalsInt4<!>.id() != false) return "Fail 5.3"
if (<!EVALUATED("false")!>equalsLong1 != false<!>) return "Fail 6.1"
if (<!EVALUATED("false")!>equalsLong2 != true<!>) return "Fail 6.2"
if (<!EVALUATED("false")!>equalsLong3 != false<!>) return "Fail 6.3"
if (<!EVALUATED("false")!>equalsLong4 != false<!>) return "Fail 6.3"
if (<!EVALUATED("false")!>equalsLong1<!>.id() != false) return "Fail 6.1"
if (<!EVALUATED("true")!>equalsLong2<!>.id() != true) return "Fail 6.2"
if (<!EVALUATED("false")!>equalsLong3<!>.id() != false) return "Fail 6.3"
if (<!EVALUATED("false")!>equalsLong4<!>.id() != false) return "Fail 6.3"
if (<!EVALUATED("false")!>equalsFloat1 != false<!>) return "Fail 7.1"
if (<!EVALUATED("false")!>equalsFloat2 != true<!>) return "Fail 7.2"
if (<!EVALUATED("false")!>equalsFloat3 != false<!>) return "Fail 7.3"
if (<!EVALUATED("false")!>equalsFloat4 != false<!>) return "Fail 7.3"
if (<!EVALUATED("false")!>equalsFloat1<!>.id() != false) return "Fail 7.1"
if (<!EVALUATED("true")!>equalsFloat2<!>.id() != true) return "Fail 7.2"
if (<!EVALUATED("false")!>equalsFloat3<!>.id() != false) return "Fail 7.3"
if (<!EVALUATED("false")!>equalsFloat4<!>.id() != false) return "Fail 7.3"
if (<!EVALUATED("false")!>equalsDouble1 != false<!>) return "Fail 8.1"
if (<!EVALUATED("false")!>equalsDouble2 != true<!>) return "Fail 8.2"
if (<!EVALUATED("false")!>equalsDouble3 != false<!>) return "Fail 8.3"
if (<!EVALUATED("false")!>equalsDouble4 != false<!>) return "Fail 8.3"
if (<!EVALUATED("false")!>equalsDouble1<!>.id() != false) return "Fail 8.1"
if (<!EVALUATED("true")!>equalsDouble2<!>.id() != true) return "Fail 8.2"
if (<!EVALUATED("false")!>equalsDouble3<!>.id() != false) return "Fail 8.3"
if (<!EVALUATED("false")!>equalsDouble4<!>.id() != false) return "Fail 8.3"
if (<!EVALUATED("false")!>equalsString1 != false<!>) return "Fail 9.1"
if (<!EVALUATED("false")!>equalsString2 != true<!>) return "Fail 9.2"
if (<!EVALUATED("false")!>equalsString3 != false<!>) return "Fail 9.3"
if (<!EVALUATED("false")!>equalsString4 != false<!>) return "Fail 9.3"
if (<!EVALUATED("false")!>equalsString1<!>.id() != false) return "Fail 9.1"
if (<!EVALUATED("true")!>equalsString2<!>.id() != true) return "Fail 9.2"
if (<!EVALUATED("false")!>equalsString3<!>.id() != false) return "Fail 9.3"
if (<!EVALUATED("false")!>equalsString4<!>.id() != false) return "Fail 9.3"
return "OK"
}
@@ -3,6 +3,7 @@
// TARGET_BACKEND: NATIVE
// TARGET_BACKEND: JS_IR
// IGNORE_BACKEND_K1: JVM_IR, NATIVE, JS_IR, JS_IR_ES6
fun <T> T.id() = this
const val flag = <!EVALUATED("true")!>true<!>
const val value = <!EVALUATED("10")!>10<!>
@@ -13,10 +14,10 @@ const val withWhen3 = <!EVALUATED("1")!>when(value) { 10 -> "1"; 100 -> "2"; els
const val multibranchIf = <!EVALUATED("3")!>if (value == 100) 1 else if (value == 1000) 2 else 3<!>
fun box(): String {
if (<!EVALUATED("false")!>condition != "True"<!>) return "Fail 1"
if (<!EVALUATED("false")!>withWhen != "True"<!>) return "Fail 2"
if (<!EVALUATED("false")!>withWhen2 != "True"<!>) return "Fail 3"
if (<!EVALUATED("false")!>withWhen3 != "1"<!>) return "Fail 4"
if (<!EVALUATED("false")!>multibranchIf != 3<!>) return "Fail 5"
if (<!EVALUATED("True")!>condition<!>.id() != "True") return "Fail 1"
if (<!EVALUATED("True")!>withWhen<!>.id() != "True") return "Fail 2"
if (<!EVALUATED("True")!>withWhen2<!>.id() != "True") return "Fail 3"
if (<!EVALUATED("1")!>withWhen3<!>.id() != "1") return "Fail 4"
if (<!EVALUATED("3")!>multibranchIf<!>.id() != 3) return "Fail 5"
return "OK"
}
@@ -1,6 +1,7 @@
// !LANGUAGE: +IntrinsicConstEvaluation
// TARGET_BACKEND: JVM_IR
// IGNORE_BACKEND_K1: JVM_IR
fun <T> T.id() = this
class A(val OK: Int, val somePropertyWithLongName: String) {
fun foo() {}
@@ -16,11 +17,11 @@ const val className = ::A.<!EVALUATED("<init>")!>name<!>
const val topLevelPropName = ::topLevelProp.<!EVALUATED("topLevelProp")!>name<!>
fun box(): String {
if (<!EVALUATED("false")!>propertyName1 != "OK"<!>) return "Fail 1"
if (<!EVALUATED("false")!>propertyName2 != "somePropertyWithLongName"<!>) return "Fail 2"
if (<!EVALUATED("false")!>methodName != "foo"<!>) return "Fail 3.1"
if (<!EVALUATED("false")!>suspendMethodName != "bar"<!>) return "Fail 3.2"
if (<!EVALUATED("false")!>className != "<init>"<!>) return "Fail 4"
if (<!EVALUATED("false")!>topLevelPropName != "topLevelProp"<!>) return "Fail 5"
if (<!EVALUATED("OK")!>propertyName1<!>.id() != "OK") return "Fail 1"
if (<!EVALUATED("somePropertyWithLongName")!>propertyName2<!>.id() != "somePropertyWithLongName") return "Fail 2"
if (<!EVALUATED("foo")!>methodName<!>.id() != "foo") return "Fail 3"
if (<!EVALUATED("bar")!>suspendMethodName<!>.id() != "bar") return "Fail 3.2"
if (<!EVALUATED("<init>")!>className<!>.id() != "<init>") return "Fail 4"
if (<!EVALUATED("topLevelProp")!>topLevelPropName<!>.id() != "topLevelProp") return "Fail 5"
return "OK"
}
@@ -1,5 +1,6 @@
// TARGET_BACKEND: JS_IR
// IGNORE_BACKEND_K1: JS_IR, JS_IR_ES6
fun <T> T.id() = this
const val toStringDouble1 = 1.0.<!EVALUATED("1")!>toString()<!>
const val toStringDouble2 = 2.0.<!EVALUATED("2")!>toString()<!>
@@ -10,18 +11,18 @@ const val toStringFloat2 = 2.0f.<!EVALUATED("2")!>toString()<!>
const val toStringFloat3 = 1.5f.<!EVALUATED("1.5")!>toString()<!>
fun box(): String {
if (<!EVALUATED("false")!>toStringDouble1 != "1"<!>) return "Fail 1.1"
if (<!EVALUATED("false")!>toStringDouble2 != "2"<!>) return "Fail 1.2"
if (<!EVALUATED("false")!>toStringDouble3 != "1.5"<!>) return "Fail 1.3"
if (<!EVALUATED("1")!>toStringDouble1<!>.id() != "1") return "Fail 1.1"
if (<!EVALUATED("2")!>toStringDouble2<!>.id() != "2") return "Fail 1.2"
if (<!EVALUATED("1.5")!>toStringDouble3<!>.id() != "1.5") return "Fail 1.3"
if (<!EVALUATED("false")!>toStringFloat1 != "1"<!>) return "Fail 2.1"
if (<!EVALUATED("false")!>toStringFloat2 != "2"<!>) return "Fail 2.2"
if (<!EVALUATED("false")!>toStringFloat3 != "1.5"<!>) return "Fail 2.3"
if (<!EVALUATED("1")!>toStringFloat1<!>.id() != "1") return "Fail 2.1"
if (<!EVALUATED("2")!>toStringFloat2<!>.id() != "2") return "Fail 2.2"
if (<!EVALUATED("1.5")!>toStringFloat3<!>.id() != "1.5") return "Fail 2.3"
val localDoubleToString = 1.0.<!EVALUATED("1")!>toString()<!>
val localFloatToString = 1.0f.<!EVALUATED("1")!>toString()<!>
if (localDoubleToString != <!EVALUATED("1")!>toStringDouble1<!>) return "Fail 3.1"
if (localFloatToString != <!EVALUATED("1")!>toStringFloat1<!>) return "Fail 3.2"
if (localDoubleToString.id() != <!EVALUATED("1")!>toStringDouble1<!>) return "Fail 3.1"
if (localFloatToString.id() != <!EVALUATED("1")!>toStringFloat1<!>) return "Fail 3.2"
return "OK"
}
@@ -1,5 +1,6 @@
// TARGET_BACKEND: JVM_IR
// TARGET_BACKEND: NATIVE
fun <T> T.id() = this
const val toStringDouble1 = 1.0.<!EVALUATED("1.0")!>toString()<!>
const val toStringDouble2 = 2.0.<!EVALUATED("2.0")!>toString()<!>
@@ -10,18 +11,18 @@ const val toStringFloat2 = 2.0f.<!EVALUATED("2.0")!>toString()<!>
const val toStringFloat3 = 1.5f.<!EVALUATED("1.5")!>toString()<!>
fun box(): String {
if (<!EVALUATED("false")!>toStringDouble1 != "1.0"<!>) return "Fail 1.1"
if (<!EVALUATED("false")!>toStringDouble2 != "2.0"<!>) return "Fail 1.2"
if (<!EVALUATED("false")!>toStringDouble3 != "1.5"<!>) return "Fail 1.3"
if (<!EVALUATED("1.0")!>toStringDouble1<!>.id() != "1.0") return "Fail 1.1"
if (<!EVALUATED("2.0")!>toStringDouble2<!>.id() != "2.0") return "Fail 1.2"
if (<!EVALUATED("1.5")!>toStringDouble3<!>.id() != "1.5") return "Fail 1.3"
if (<!EVALUATED("false")!>toStringFloat1 != "1.0"<!>) return "Fail 2.1"
if (<!EVALUATED("false")!>toStringFloat2 != "2.0"<!>) return "Fail 2.2"
if (<!EVALUATED("false")!>toStringFloat3 != "1.5"<!>) return "Fail 2.3"
if (<!EVALUATED("1.0")!>toStringFloat1<!>.id() != "1.0") return "Fail 2.1"
if (<!EVALUATED("2.0")!>toStringFloat2<!>.id() != "2.0") return "Fail 2.2"
if (<!EVALUATED("1.5")!>toStringFloat3<!>.id() != "1.5") return "Fail 2.3"
val localDoubleToString = 1.0.<!EVALUATED("1.0")!>toString()<!>
val localFloatToString = 1.0f.<!EVALUATED("1.0")!>toString()<!>
if (localDoubleToString != <!EVALUATED("1.0")!>toStringDouble1<!>) return "Fail 3.1"
if (localFloatToString != <!EVALUATED("1.0")!>toStringFloat1<!>) return "Fail 3.2"
if (localDoubleToString.id() != <!EVALUATED("1.0")!>toStringDouble1<!>) return "Fail 3.1"
if (localFloatToString.id() != <!EVALUATED("1.0")!>toStringFloat1<!>) return "Fail 3.2"
return "OK"
}
@@ -2,6 +2,7 @@
// TARGET_BACKEND: NATIVE
// TARGET_BACKEND: JS_IR
// IGNORE_BACKEND_K1: NATIVE
fun <T> T.id() = this
const val minusOneVal = <!EVALUATED("-1")!>-1L<!>
const val oneVal = <!EVALUATED("1")!>1L<!>
@@ -92,80 +93,80 @@ const val toString1 = oneVal.<!EVALUATED("1")!>toString()<!>
const val toString2 = twoVal.<!EVALUATED("2")!>toString()<!>
fun box(): String {
if (<!EVALUATED("false")!>compareTo1 != -1<!>) return "Fail 1.1"
if (<!EVALUATED("false")!>compareTo2 != 0<!>) return "Fail 1.2"
if (<!EVALUATED("false")!>compareTo3 != 1<!>) return "Fail 1.3"
if (<!EVALUATED("false")!>compareTo4 != 0<!>) return "Fail 1.4"
if (<!EVALUATED("false")!>compareTo5 != 0<!>) return "Fail 1.5"
if (<!EVALUATED("false")!>compareTo6 != 0<!>) return "Fail 1.6"
if (<!EVALUATED("false")!>compareTo7 != 0<!>) return "Fail 1.7"
if (<!EVALUATED("false")!>compareTo8 != 0<!>) return "Fail 1.8"
if (<!EVALUATED("-1")!>compareTo1<!>.id() != -1) return "Fail 1.1"
if (<!EVALUATED("0")!>compareTo2<!>.id() != 0) return "Fail 1.2"
if (<!EVALUATED("1")!>compareTo3<!>.id() != 1) return "Fail 1.3"
if (<!EVALUATED("0")!>compareTo4<!>.id() != 0) return "Fail 1.4"
if (<!EVALUATED("0")!>compareTo5<!>.id() != 0) return "Fail 1.5"
if (<!EVALUATED("0")!>compareTo6<!>.id() != 0) return "Fail 1.6"
if (<!EVALUATED("0")!>compareTo7<!>.id() != 0) return "Fail 1.7"
if (<!EVALUATED("0")!>compareTo8<!>.id() != 0) return "Fail 1.8"
if (<!EVALUATED("false")!>plus1 != 3L<!>) return "Fail 2.1"
if (<!EVALUATED("false")!>plus2 != 4L<!>) return "Fail 2.2"
if (<!EVALUATED("false")!>plus3 != 5L<!>) return "Fail 2.3"
if (<!EVALUATED("false")!>plus4 != 4L<!>) return "Fail 2.4"
if (<!EVALUATED("false")!>plus5 != 4L<!>) return "Fail 2.5"
if (<!EVALUATED("false")!>plus6 != 4L<!>) return "Fail 2.6"
if (<!EVALUATED("false")!>plus7 != 4.0f<!>) return "Fail 2.7"
if (<!EVALUATED("false")!>plus8 != 4.0<!>) return "Fail 2.8"
if (<!EVALUATED("3")!>plus1<!>.id() != 3L) return "Fail 2.1"
if (<!EVALUATED("4")!>plus2<!>.id() != 4L) return "Fail 2.2"
if (<!EVALUATED("5")!>plus3<!>.id() != 5L) return "Fail 2.3"
if (<!EVALUATED("4")!>plus4<!>.id() != 4L) return "Fail 2.4"
if (<!EVALUATED("4")!>plus5<!>.id() != 4L) return "Fail 2.5"
if (<!EVALUATED("4")!>plus6<!>.id() != 4L) return "Fail 2.6"
if (<!EVALUATED("4.0")!>plus7<!>.id() != 4.0f) return "Fail 2.7"
if (<!EVALUATED("4.0")!>plus8<!>.id() != 4.0) return "Fail 2.8"
if (<!EVALUATED("false")!>minus1 != -1L<!>) return "Fail 3.1"
if (<!EVALUATED("false")!>minus2 != 0L<!>) return "Fail 3.2"
if (<!EVALUATED("false")!>minus3 != 1L<!>) return "Fail 3.3"
if (<!EVALUATED("false")!>minus4 != 0L<!>) return "Fail 3.4"
if (<!EVALUATED("false")!>minus5 != 0L<!>) return "Fail 3.5"
if (<!EVALUATED("false")!>minus6 != 0L<!>) return "Fail 3.6"
if (<!EVALUATED("false")!>minus7 != 0.0f<!>) return "Fail 3.7"
if (<!EVALUATED("false")!>minus8 != 0.0<!>) return "Fail 3.8"
if (<!EVALUATED("-1")!>minus1<!>.id() != <!EVALUATED("-1")!>-1L<!>) return "Fail 3.1"
if (<!EVALUATED("0")!>minus2<!>.id() != 0L) return "Fail 3.2"
if (<!EVALUATED("1")!>minus3<!>.id() != 1L) return "Fail 3.3"
if (<!EVALUATED("0")!>minus4<!>.id() != 0L) return "Fail 3.4"
if (<!EVALUATED("0")!>minus5<!>.id() != 0L) return "Fail 3.5"
if (<!EVALUATED("0")!>minus6<!>.id() != 0L) return "Fail 3.6"
if (<!EVALUATED("0.0")!>minus7<!>.id() != 0.0f) return "Fail 3.7"
if (<!EVALUATED("0.0")!>minus8<!>.id() != 0.0) return "Fail 3.8"
if (<!EVALUATED("false")!>times1 != 2L<!>) return "Fail 4.1"
if (<!EVALUATED("false")!>times2 != 4L<!>) return "Fail 4.2"
if (<!EVALUATED("false")!>times3 != 6L<!>) return "Fail 4.3"
if (<!EVALUATED("false")!>times4 != 4L<!>) return "Fail 4.4"
if (<!EVALUATED("false")!>times5 != 4L<!>) return "Fail 4.5"
if (<!EVALUATED("false")!>times6 != 4L<!>) return "Fail 4.6"
if (<!EVALUATED("false")!>times7 != 4.0f<!>) return "Fail 4.7"
if (<!EVALUATED("false")!>times8 != 4.0<!>) return "Fail 4.8"
if (<!EVALUATED("2")!>times1<!>.id() != 2L) return "Fail 4.1"
if (<!EVALUATED("4")!>times2<!>.id() != 4L) return "Fail 4.2"
if (<!EVALUATED("6")!>times3<!>.id() != 6L) return "Fail 4.3"
if (<!EVALUATED("4")!>times4<!>.id() != 4L) return "Fail 4.4"
if (<!EVALUATED("4")!>times5<!>.id() != 4L) return "Fail 4.5"
if (<!EVALUATED("4")!>times6<!>.id() != 4L) return "Fail 4.6"
if (<!EVALUATED("4.0")!>times7<!>.id() != 4.0f) return "Fail 4.7"
if (<!EVALUATED("4.0")!>times8<!>.id() != 4.0) return "Fail 4.8"
if (<!EVALUATED("false")!>div1 != 0L<!>) return "Fail 5.1"
if (<!EVALUATED("false")!>div2 != 1L<!>) return "Fail 5.2"
if (<!EVALUATED("false")!>div3 != 1L<!>) return "Fail 5.3"
if (<!EVALUATED("false")!>div4 != 1L<!>) return "Fail 5.4"
if (<!EVALUATED("false")!>div5 != 1L<!>) return "Fail 5.5"
if (<!EVALUATED("false")!>div6 != 1L<!>) return "Fail 5.6"
if (<!EVALUATED("false")!>div7 != 1.0f<!>) return "Fail 5.7"
if (<!EVALUATED("false")!>div8 != 1.0<!>) return "Fail 5.8"
if (<!EVALUATED("0")!>div1<!>.id() != 0L) return "Fail 5.1"
if (<!EVALUATED("1")!>div2<!>.id() != 1L) return "Fail 5.2"
if (<!EVALUATED("1")!>div3<!>.id() != 1L) return "Fail 5.3"
if (<!EVALUATED("1")!>div4<!>.id() != 1L) return "Fail 5.4"
if (<!EVALUATED("1")!>div5<!>.id() != 1L) return "Fail 5.5"
if (<!EVALUATED("1")!>div6<!>.id() != 1L) return "Fail 5.6"
if (<!EVALUATED("1.0")!>div7<!>.id() != 1.0f) return "Fail 5.7"
if (<!EVALUATED("1.0")!>div8<!>.id() != 1.0) return "Fail 5.8"
if (<!EVALUATED("false")!>rem1 != 1L<!>) return "Fail 6.1"
if (<!EVALUATED("false")!>rem2 != 0L<!>) return "Fail 6.2"
if (<!EVALUATED("false")!>rem3 != 1L<!>) return "Fail 6.3"
if (<!EVALUATED("false")!>rem4 != 0L<!>) return "Fail 6.4"
if (<!EVALUATED("false")!>rem5 != 0L<!>) return "Fail 6.5"
if (<!EVALUATED("false")!>rem6 != 0L<!>) return "Fail 6.6"
if (<!EVALUATED("false")!>rem7 != 0.0f<!>) return "Fail 6.7"
if (<!EVALUATED("false")!>rem8 != 0.0<!>) return "Fail 6.8"
if (<!EVALUATED("1")!>rem1<!>.id() != 1L) return "Fail 6.1"
if (<!EVALUATED("0")!>rem2<!>.id() != 0L) return "Fail 6.2"
if (<!EVALUATED("1")!>rem3<!>.id() != 1L) return "Fail 6.3"
if (<!EVALUATED("0")!>rem4<!>.id() != 0L) return "Fail 6.4"
if (<!EVALUATED("0")!>rem5<!>.id() != 0L) return "Fail 6.5"
if (<!EVALUATED("0")!>rem6<!>.id() != 0L) return "Fail 6.6"
if (<!EVALUATED("0.0")!>rem7<!>.id() != 0.0f) return "Fail 6.7"
if (<!EVALUATED("0.0")!>rem8<!>.id() != 0.0) return "Fail 6.8"
if (<!EVALUATED("false")!>unaryPlus1 != 1L<!>) return "Fail 7.1"
if (<!EVALUATED("false")!>unaryPlus2 != -1L<!>) return "Fail 7.2"
if (<!EVALUATED("false")!>unaryMinus1 != -1L<!>) return "Fail 7.3"
if (<!EVALUATED("false")!>unaryMinus2 != 1L<!>) return "Fail 7.4"
if (<!EVALUATED("1")!>unaryPlus1<!>.id() != 1L) return "Fail 7.1"
if (<!EVALUATED("-1")!>unaryPlus2<!>.id() != <!EVALUATED("-1")!>-1L<!>) return "Fail 7.2"
if (<!EVALUATED("-1")!>unaryMinus1<!>.id() != <!EVALUATED("-1")!>-1L<!>) return "Fail 7.3"
if (<!EVALUATED("1")!>unaryMinus2<!>.id() != 1L) return "Fail 7.4"
if (<!EVALUATED("false")!>convert1 != 1.toByte()<!>) return "Fail 8.1"
if (<!EVALUATED("false")!>convert2 != ''<!>) return "Fail 8.2"
if (<!EVALUATED("false")!>convert3 != 1.toShort()<!>) return "Fail 8.3"
if (<!EVALUATED("false")!>convert4 != 1<!>) return "Fail 8.4"
if (<!EVALUATED("false")!>convert5 != 1L<!>) return "Fail 8.5"
if (<!EVALUATED("false")!>convert6 != 1.0f<!>) return "Fail 8.6"
if (<!EVALUATED("false")!>convert7 != 1.0<!>) return "Fail 8.7"
if (<!EVALUATED("1")!>convert1<!>.id() != 1.<!EVALUATED("1")!>toByte()<!>) return "Fail 8.1"
if (<!EVALUATED("")!>convert2<!>.id() != '') return "Fail 8.2"
if (<!EVALUATED("1")!>convert3<!>.id() != 1.<!EVALUATED("1")!>toShort()<!>) return "Fail 8.3"
if (<!EVALUATED("1")!>convert4<!>.id() != 1) return "Fail 8.4"
if (<!EVALUATED("1")!>convert5<!>.id() != 1L) return "Fail 8.5"
if (<!EVALUATED("1.0")!>convert6<!>.id() != 1.0f) return "Fail 8.6"
if (<!EVALUATED("1.0")!>convert7<!>.id() != 1.0) return "Fail 8.7"
if (<!EVALUATED("false")!>equals1 != false<!>) return "Fail 9.1"
if (<!EVALUATED("false")!>equals2 != true<!>) return "Fail 9.2"
if (<!EVALUATED("false")!>equals3 != false<!>) return "Fail 9.3"
if (<!EVALUATED("false")!>equals4 != false<!>) return "Fail 9.4"
if (<!EVALUATED("false")!>equals1<!>.id() != false) return "Fail 9.1"
if (<!EVALUATED("true")!>equals2<!>.id() != true) return "Fail 9.2"
if (<!EVALUATED("false")!>equals3<!>.id() != false) return "Fail 9.3"
if (<!EVALUATED("false")!>equals4<!>.id() != false) return "Fail 9.4"
if (<!EVALUATED("false")!>toString1 != "1"<!>) return "Fail 10.1"
if (<!EVALUATED("false")!>toString2 != "2"<!>) return "Fail 10.2"
if (<!EVALUATED("1")!>toString1<!>.id() != "1") return "Fail 10.1"
if (<!EVALUATED("2")!>toString2<!>.id() != "2") return "Fail 10.2"
return "OK"
}
@@ -2,6 +2,7 @@
// TARGET_BACKEND: NATIVE
// TARGET_BACKEND: JS_IR
// IGNORE_BACKEND_K1: NATIVE
fun <T> T.id() = this
const val minusOneVal = (-1).<!EVALUATED("-1")!>toShort()<!>
const val oneVal = 1.<!EVALUATED("1")!>toShort()<!>
@@ -92,80 +93,80 @@ const val toString1 = oneVal.<!EVALUATED("1")!>toString()<!>
const val toString2 = twoVal.<!EVALUATED("2")!>toString()<!>
fun box(): String {
if (<!EVALUATED("false")!>compareTo1 != -1<!>) return "Fail 1.1"
if (<!EVALUATED("false")!>compareTo2 != 0<!>) return "Fail 1.2"
if (<!EVALUATED("false")!>compareTo3 != 1<!>) return "Fail 1.3"
if (<!EVALUATED("false")!>compareTo4 != 0<!>) return "Fail 1.4"
if (<!EVALUATED("false")!>compareTo5 != 0<!>) return "Fail 1.5"
if (<!EVALUATED("false")!>compareTo6 != 0<!>) return "Fail 1.6"
if (<!EVALUATED("false")!>compareTo7 != 0<!>) return "Fail 1.7"
if (<!EVALUATED("false")!>compareTo8 != 0<!>) return "Fail 1.8"
if (<!EVALUATED("-1")!>compareTo1<!>.id() != -1) return "Fail 1.1"
if (<!EVALUATED("0")!>compareTo2<!>.id() != 0) return "Fail 1.2"
if (<!EVALUATED("1")!>compareTo3<!>.id() != 1) return "Fail 1.3"
if (<!EVALUATED("0")!>compareTo4<!>.id() != 0) return "Fail 1.4"
if (<!EVALUATED("0")!>compareTo5<!>.id() != 0) return "Fail 1.5"
if (<!EVALUATED("0")!>compareTo6<!>.id() != 0) return "Fail 1.6"
if (<!EVALUATED("0")!>compareTo7<!>.id() != 0) return "Fail 1.7"
if (<!EVALUATED("0")!>compareTo8<!>.id() != 0) return "Fail 1.8"
if (<!EVALUATED("false")!>plus1 != 3<!>) return "Fail 2.1"
if (<!EVALUATED("false")!>plus2 != 4<!>) return "Fail 2.2"
if (<!EVALUATED("false")!>plus3 != 5<!>) return "Fail 2.3"
if (<!EVALUATED("false")!>plus4 != 4<!>) return "Fail 2.4"
if (<!EVALUATED("false")!>plus5 != 4<!>) return "Fail 2.5"
if (<!EVALUATED("false")!>plus6 != 4L<!>) return "Fail 2.6"
if (<!EVALUATED("false")!>plus7 != 4.0f<!>) return "Fail 2.7"
if (<!EVALUATED("false")!>plus8 != 4.0<!>) return "Fail 2.8"
if (<!EVALUATED("3")!>plus1<!>.id() != 3) return "Fail 2.1"
if (<!EVALUATED("4")!>plus2<!>.id() != 4) return "Fail 2.2"
if (<!EVALUATED("5")!>plus3<!>.id() != 5) return "Fail 2.3"
if (<!EVALUATED("4")!>plus4<!>.id() != 4) return "Fail 2.4"
if (<!EVALUATED("4")!>plus5<!>.id() != 4) return "Fail 2.5"
if (<!EVALUATED("4")!>plus6<!>.id() != 4L) return "Fail 2.6"
if (<!EVALUATED("4.0")!>plus7<!>.id() != 4.0f) return "Fail 2.7"
if (<!EVALUATED("4.0")!>plus8<!>.id() != 4.0) return "Fail 2.8"
if (<!EVALUATED("false")!>minus1 != -1<!>) return "Fail 3.1"
if (<!EVALUATED("false")!>minus2 != 0<!>) return "Fail 3.2"
if (<!EVALUATED("false")!>minus3 != 1<!>) return "Fail 3.3"
if (<!EVALUATED("false")!>minus4 != 0<!>) return "Fail 3.4"
if (<!EVALUATED("false")!>minus5 != 0<!>) return "Fail 3.5"
if (<!EVALUATED("false")!>minus6 != 0L<!>) return "Fail 3.6"
if (<!EVALUATED("false")!>minus7 != 0.0f<!>) return "Fail 3.7"
if (<!EVALUATED("false")!>minus8 != 0.0<!>) return "Fail 3.8"
if (<!EVALUATED("-1")!>minus1<!>.id() != -1) return "Fail 3.1"
if (<!EVALUATED("0")!>minus2<!>.id() != 0) return "Fail 3.2"
if (<!EVALUATED("1")!>minus3<!>.id() != 1) return "Fail 3.3"
if (<!EVALUATED("0")!>minus4<!>.id() != 0) return "Fail 3.4"
if (<!EVALUATED("0")!>minus5<!>.id() != 0) return "Fail 3.5"
if (<!EVALUATED("0")!>minus6<!>.id() != 0L) return "Fail 3.6"
if (<!EVALUATED("0.0")!>minus7<!>.id() != 0.0f) return "Fail 3.7"
if (<!EVALUATED("0.0")!>minus8<!>.id() != 0.0) return "Fail 3.8"
if (<!EVALUATED("false")!>times1 != 2<!>) return "Fail 4.1"
if (<!EVALUATED("false")!>times2 != 4<!>) return "Fail 4.2"
if (<!EVALUATED("false")!>times3 != 6<!>) return "Fail 4.3"
if (<!EVALUATED("false")!>times4 != 4<!>) return "Fail 4.4"
if (<!EVALUATED("false")!>times5 != 4<!>) return "Fail 4.5"
if (<!EVALUATED("false")!>times6 != 4L<!>) return "Fail 4.6"
if (<!EVALUATED("false")!>times7 != 4.0f<!>) return "Fail 4.7"
if (<!EVALUATED("false")!>times8 != 4.0<!>) return "Fail 4.8"
if (<!EVALUATED("2")!>times1<!>.id() != 2) return "Fail 4.1"
if (<!EVALUATED("4")!>times2<!>.id() != 4) return "Fail 4.2"
if (<!EVALUATED("6")!>times3<!>.id() != 6) return "Fail 4.3"
if (<!EVALUATED("4")!>times4<!>.id() != 4) return "Fail 4.4"
if (<!EVALUATED("4")!>times5<!>.id() != 4) return "Fail 4.5"
if (<!EVALUATED("4")!>times6<!>.id() != 4L) return "Fail 4.6"
if (<!EVALUATED("4.0")!>times7<!>.id() != 4.0f) return "Fail 4.7"
if (<!EVALUATED("4.0")!>times8<!>.id() != 4.0) return "Fail 4.8"
if (<!EVALUATED("false")!>div1 != 0<!>) return "Fail 5.1"
if (<!EVALUATED("false")!>div2 != 1<!>) return "Fail 5.2"
if (<!EVALUATED("false")!>div3 != 1<!>) return "Fail 5.3"
if (<!EVALUATED("false")!>div4 != 1<!>) return "Fail 5.4"
if (<!EVALUATED("false")!>div5 != 1<!>) return "Fail 5.5"
if (<!EVALUATED("false")!>div6 != 1L<!>) return "Fail 5.6"
if (<!EVALUATED("false")!>div7 != 1.0f<!>) return "Fail 5.7"
if (<!EVALUATED("false")!>div8 != 1.0<!>) return "Fail 5.8"
if (<!EVALUATED("0")!>div1<!>.id() != 0) return "Fail 5.1"
if (<!EVALUATED("1")!>div2<!>.id() != 1) return "Fail 5.2"
if (<!EVALUATED("1")!>div3<!>.id() != 1) return "Fail 5.3"
if (<!EVALUATED("1")!>div4<!>.id() != 1) return "Fail 5.4"
if (<!EVALUATED("1")!>div5<!>.id() != 1) return "Fail 5.5"
if (<!EVALUATED("1")!>div6<!>.id() != 1L) return "Fail 5.6"
if (<!EVALUATED("1.0")!>div7<!>.id() != 1.0f) return "Fail 5.7"
if (<!EVALUATED("1.0")!>div8<!>.id() != 1.0) return "Fail 5.8"
if (<!EVALUATED("false")!>rem1 != 1<!>) return "Fail 6.1"
if (<!EVALUATED("false")!>rem2 != 0<!>) return "Fail 6.2"
if (<!EVALUATED("false")!>rem3 != 1<!>) return "Fail 6.3"
if (<!EVALUATED("false")!>rem4 != 0<!>) return "Fail 6.4"
if (<!EVALUATED("false")!>rem5 != 0<!>) return "Fail 6.5"
if (<!EVALUATED("false")!>rem6 != 0L<!>) return "Fail 6.6"
if (<!EVALUATED("false")!>rem7 != 0.0f<!>) return "Fail 6.7"
if (<!EVALUATED("false")!>rem8 != 0.0<!>) return "Fail 6.8"
if (<!EVALUATED("1")!>rem1<!>.id() != 1) return "Fail 6.1"
if (<!EVALUATED("0")!>rem2<!>.id() != 0) return "Fail 6.2"
if (<!EVALUATED("1")!>rem3<!>.id() != 1) return "Fail 6.3"
if (<!EVALUATED("0")!>rem4<!>.id() != 0) return "Fail 6.4"
if (<!EVALUATED("0")!>rem5<!>.id() != 0) return "Fail 6.5"
if (<!EVALUATED("0")!>rem6<!>.id() != 0L) return "Fail 6.6"
if (<!EVALUATED("0.0")!>rem7<!>.id() != 0.0f) return "Fail 6.7"
if (<!EVALUATED("0.0")!>rem8<!>.id() != 0.0) return "Fail 6.8"
if (<!EVALUATED("false")!>unaryPlus1 != 1<!>) return "Fail 7.1"
if (<!EVALUATED("false")!>unaryPlus2 != -1<!>) return "Fail 7.2"
if (<!EVALUATED("false")!>unaryMinus1 != -1<!>) return "Fail 7.3"
if (<!EVALUATED("false")!>unaryMinus2 != 1<!>) return "Fail 7.4"
if (<!EVALUATED("1")!>unaryPlus1<!>.id() != 1) return "Fail 7.1"
if (<!EVALUATED("-1")!>unaryPlus2<!>.id() != -1) return "Fail 7.2"
if (<!EVALUATED("-1")!>unaryMinus1<!>.id() != -1) return "Fail 7.3"
if (<!EVALUATED("1")!>unaryMinus2<!>.id() != 1) return "Fail 7.4"
if (<!EVALUATED("false")!>convert1 != 1.toByte()<!>) return "Fail 8.1"
if (<!EVALUATED("false")!>convert2 != ''<!>) return "Fail 8.2"
if (<!EVALUATED("false")!>convert3 != 1.toShort()<!>) return "Fail 8.3"
if (<!EVALUATED("false")!>convert4 != 1<!>) return "Fail 8.4"
if (<!EVALUATED("false")!>convert5 != 1L<!>) return "Fail 8.5"
if (<!EVALUATED("false")!>convert6 != 1.0f<!>) return "Fail 8.6"
if (<!EVALUATED("false")!>convert7 != 1.0<!>) return "Fail 8.7"
if (<!EVALUATED("1")!>convert1<!>.id() != 1.<!EVALUATED("1")!>toByte()<!>) return "Fail 8.1"
if (<!EVALUATED("")!>convert2<!>.id() != '') return "Fail 8.2"
if (<!EVALUATED("1")!>convert3<!>.id() != 1.<!EVALUATED("1")!>toShort()<!>) return "Fail 8.3"
if (<!EVALUATED("1")!>convert4<!>.id() != 1) return "Fail 8.4"
if (<!EVALUATED("1")!>convert5<!>.id() != 1L) return "Fail 8.5"
if (<!EVALUATED("1.0")!>convert6<!>.id() != 1.0f) return "Fail 8.6"
if (<!EVALUATED("1.0")!>convert7<!>.id() != 1.0) return "Fail 8.7"
if (<!EVALUATED("false")!>equals1 != false<!>) return "Fail 9.1"
if (<!EVALUATED("false")!>equals2 != true<!>) return "Fail 9.2"
if (<!EVALUATED("false")!>equals3 != false<!>) return "Fail 9.3"
if (<!EVALUATED("false")!>equals4 != false<!>) return "Fail 9.4"
if (<!EVALUATED("false")!>equals1<!>.id() != false) return "Fail 9.1"
if (<!EVALUATED("true")!>equals2<!>.id() != true) return "Fail 9.2"
if (<!EVALUATED("false")!>equals3<!>.id() != false) return "Fail 9.3"
if (<!EVALUATED("false")!>equals4<!>.id() != false) return "Fail 9.4"
if (<!EVALUATED("false")!>toString1 != "1"<!>) return "Fail 10.1"
if (<!EVALUATED("false")!>toString2 != "2"<!>) return "Fail 10.2"
if (<!EVALUATED("1")!>toString1<!>.id() != "1") return "Fail 10.1"
if (<!EVALUATED("2")!>toString2<!>.id() != "2") return "Fail 10.2"
return "OK"
}
@@ -2,15 +2,16 @@
// TARGET_BACKEND: NATIVE
// TARGET_BACKEND: JS_IR
// WITH_STDLIB
fun <T> T.id() = this
const val code = '1'.<!EVALUATED("49")!>code<!>
const val floorDiv = 10.<!EVALUATED("5")!>floorDiv(2)<!>
const val mod = 5.<!EVALUATED("2")!>mod(3)<!>
fun box(): String {
if (<!EVALUATED("false")!>code != 49<!>) return "Fail 1"
if (<!EVALUATED("false")!>floorDiv != 5<!>) return "Fail 2"
if (<!EVALUATED("false")!>mod != 2<!>) return "Fail 3"
if (<!EVALUATED("49")!>code<!>.id() != 49) return "Fail 1"
if (<!EVALUATED("5")!>floorDiv<!>.id() != 5) return "Fail 2"
if (<!EVALUATED("2")!>mod<!>.id() != 2) return "Fail 3"
return "OK"
}
@@ -2,15 +2,16 @@
// TARGET_BACKEND: NATIVE
// TARGET_BACKEND: JS_IR
// WITH_STDLIB
fun <T> T.id() = this
const val simple = <!EVALUATED("OK 3.5")!>"O${'K'} ${1.toLong() + 2.5}"<!>
const val withInnerConcatenation = <!EVALUATED("1 2 3 4 5 6")!>"1 ${"2 ${3} ${4} 5"} 6"<!>
const val withNull = <!EVALUATED("1 null")!>"1 ${null}"<!> // but `"1" + null` is invalid
fun box(): String {
if (<!EVALUATED("false")!>simple != "OK 3.5"<!>) return "Fail 1"
if (<!EVALUATED("false")!>withInnerConcatenation != "1 2 3 4 5 6"<!>) return "Fail 2"
if (<!EVALUATED("false")!>withNull != "1 null"<!>) return "Fail 3"
if (<!EVALUATED("OK 3.5")!>simple<!>.id() != "OK 3.5") return "Fail 1"
if (<!EVALUATED("1 2 3 4 5 6")!>withInnerConcatenation<!>.id() != "1 2 3 4 5 6") return "Fail 2"
if (<!EVALUATED("1 null")!>withNull<!>.id() != "1 null") return "Fail 3"
return "OK"
}
@@ -1,6 +1,7 @@
// TARGET_BACKEND: JVM_IR
// TARGET_BACKEND: NATIVE
// TARGET_BACKEND: JS_IR
fun <T> T.id() = this
const val someStr = <!EVALUATED("123")!>"123"<!>
const val otherStr = <!EVALUATED("other")!>"other"<!>
@@ -27,23 +28,23 @@ const val equals3 = <!EVALUATED("false")!>otherStr == someStr<!>
const val toString1 = someStr.<!EVALUATED("123")!>toString()<!>
fun box(): String {
if (<!EVALUATED("false")!>plus1 != "123other"<!>) return "Fail 1.1"
if (<!EVALUATED("false")!>plus2 != "1231"<!>) return "Fail 1.2"
if (<!EVALUATED("123other")!>plus1<!>.id() != "123other") return "Fail 1.1"
if (<!EVALUATED("1231")!>plus2<!>.id() != "1231") return "Fail 1.2"
if (<!EVALUATED("false")!>length1 != 3<!>) return "Fail 2.1"
if (<!EVALUATED("false")!>length2 != 5<!>) return "Fail 2.2"
if (<!EVALUATED("3")!>length1<!>.id() != 3) return "Fail 2.1"
if (<!EVALUATED("5")!>length2<!>.id() != 5) return "Fail 2.2"
if (<!EVALUATED("false")!>get1 != '1'<!>) return "Fail 3.1"
if (<!EVALUATED("false")!>get2 != 't'<!>) return "Fail 3.2"
if (<!EVALUATED("1")!>get1<!>.id() != '1') return "Fail 3.1"
if (<!EVALUATED("t")!>get2<!>.id() != 't') return "Fail 3.2"
if (<!EVALUATED("false")!>compareTo1 != 0<!>) return "Fail 4.1"
if (<!EVALUATED("0")!>compareTo1<!>.id() != 0) return "Fail 4.1"
if (<!EVALUATED("false")!>compareTo2 >= 0<!>) return "Fail 4.2"
if (<!EVALUATED("false")!>compareTo3 <= 0<!>) return "Fail 4.3"
if (<!EVALUATED("false")!>equals1 != true<!>) return "Fail 5.1"
if (<!EVALUATED("false")!>equals2 != false<!>) return "Fail 5.2"
if (<!EVALUATED("false")!>equals3 != false<!>) return "Fail 5.3"
if (<!EVALUATED("true")!>equals1<!>.id() != true) return "Fail 5.1"
if (<!EVALUATED("false")!>equals2<!>.id() != false) return "Fail 5.2"
if (<!EVALUATED("false")!>equals3<!>.id() != false) return "Fail 5.3"
if (<!EVALUATED("false")!>toString1 != "123"<!>) return "Fail 6.1"
if (<!EVALUATED("123")!>toString1<!>.id() != "123") return "Fail 6.1"
return "OK"
}
@@ -2,6 +2,7 @@
// TARGET_BACKEND: NATIVE
// TARGET_BACKEND: JS_IR
// WITH_STDLIB
fun <T> T.id() = this
const val byteVal: UByte = <!EVALUATED("1")!>1u<!>
const val shortVal: UShort = <!EVALUATED("2")!>2u<!>
@@ -9,9 +10,9 @@ const val intVal: UInt = <!EVALUATED("3")!>3u<!>
const val longVal: ULong = <!EVALUATED("4")!>4uL<!>
fun box(): String {
if (<!EVALUATED("1")!>byteVal<!> != 1u.toUByte()) return "Fail 1"
if (<!EVALUATED("2")!>shortVal<!> != 2u.toUShort()) return "Fail 2"
if (<!EVALUATED("3")!>intVal<!> != 3u.toUInt()) return "Fail 3"
if (<!EVALUATED("4")!>longVal<!> != 4u.toULong()) return "Fail 4"
if (<!EVALUATED("1")!>byteVal<!>.id() != 1u.toUByte()) return "Fail 1"
if (<!EVALUATED("2")!>shortVal<!>.id() != 2u.toUShort()) return "Fail 2"
if (<!EVALUATED("3")!>intVal<!>.id() != 3u.toUInt()) return "Fail 3"
if (<!EVALUATED("4")!>longVal<!>.id() != 4u.toULong()) return "Fail 4"
return "OK"
}