Move IR interpreter's tests from ir/loweredIr directory into box
This commit is contained in:
+71
@@ -0,0 +1,71 @@
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
|
||||
const val trueVal = true
|
||||
const val falseVal = false
|
||||
|
||||
const val not1 = trueVal.not()
|
||||
const val not2 = falseVal.not()
|
||||
|
||||
const val and1 = trueVal.and(trueVal)
|
||||
const val and2 = trueVal.and(falseVal)
|
||||
const val and3 = falseVal.and(trueVal)
|
||||
const val and4 = falseVal.and(falseVal)
|
||||
|
||||
const val or1 = trueVal.or(trueVal)
|
||||
const val or2 = trueVal.or(falseVal)
|
||||
const val or3 = falseVal.or(trueVal)
|
||||
const val or4 = falseVal.or(falseVal)
|
||||
|
||||
const val xor1 = trueVal.xor(trueVal)
|
||||
const val xor2 = trueVal.xor(falseVal)
|
||||
const val xor3 = falseVal.xor(trueVal)
|
||||
const val xor4 = falseVal.xor(falseVal)
|
||||
|
||||
const val compareTo1 = trueVal.compareTo(trueVal)
|
||||
const val compareTo2 = trueVal.compareTo(falseVal)
|
||||
const val compareTo3 = falseVal.compareTo(trueVal)
|
||||
const val compareTo4 = falseVal.compareTo(falseVal)
|
||||
|
||||
const val equals1 = trueVal.equals(trueVal)
|
||||
const val equals2 = trueVal.equals(falseVal)
|
||||
const val equals3 = falseVal.equals(trueVal)
|
||||
const val equals4 = falseVal.equals(falseVal)
|
||||
const val equals5 = falseVal.equals(1)
|
||||
|
||||
const val toString1 = trueVal.toString()
|
||||
const val toString2 = falseVal.toString()
|
||||
|
||||
fun box(): String {
|
||||
if (not1 != false) return "Fail 1.1"
|
||||
if (not2 != true) return "Fail 1.2"
|
||||
|
||||
if (and1 != true) return "Fail 2.1"
|
||||
if (and2 != false) return "Fail 2.2"
|
||||
if (and3 != false) return "Fail 2.3"
|
||||
if (and4 != false) return "Fail 2.4"
|
||||
|
||||
if (or1 != true) return "Fail 3.1"
|
||||
if (or2 != true) return "Fail 3.2"
|
||||
if (or3 != true) return "Fail 3.3"
|
||||
if (or4 != false) return "Fail 3.4"
|
||||
|
||||
if (xor1 != false) return "Fail 4.1"
|
||||
if (xor2 != true) return "Fail 4.2"
|
||||
if (xor3 != true) return "Fail 4.3"
|
||||
if (xor4 != false) return "Fail 4.4"
|
||||
|
||||
if (compareTo1 != 0) return "Fail 5.1"
|
||||
if (compareTo2 != 1) return "Fail 5.2"
|
||||
if (compareTo3 != -1) return "Fail 5.3"
|
||||
if (compareTo4 != 0) return "Fail 5.4"
|
||||
|
||||
if (equals1 != true) return "Fail 6.1"
|
||||
if (equals2 != false) return "Fail 6.2"
|
||||
if (equals3 != false) return "Fail 6.3"
|
||||
if (equals4 != true) return "Fail 6.4"
|
||||
if (equals5 != false) return "Fail 6.5"
|
||||
|
||||
if (toString1 != "true") return "Fail 7.1"
|
||||
if (toString2 != "false") return "Fail 7.2"
|
||||
return "OK"
|
||||
}
|
||||
+171
@@ -0,0 +1,171 @@
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// IGNORE_BACKEND_K1: JVM_IR
|
||||
|
||||
const val minusOneVal = (-1).toByte()
|
||||
const val oneVal = 1.toByte()
|
||||
const val twoVal = 2.toByte()
|
||||
const val threeVal = 3.toByte()
|
||||
const val fourVal = 4.toByte()
|
||||
|
||||
const val byteVal = 2.toByte()
|
||||
const val shortVal = 2.toShort()
|
||||
const val intVal = 2
|
||||
const val longVal = 2L
|
||||
const val floatVal = 2.0f
|
||||
const val doubleVal = 2.0
|
||||
|
||||
const val compareTo1 = oneVal.compareTo(twoVal)
|
||||
const val compareTo2 = twoVal.compareTo(twoVal)
|
||||
const val compareTo3 = threeVal.compareTo(twoVal)
|
||||
const val compareTo4 = twoVal.compareTo(shortVal)
|
||||
const val compareTo5 = twoVal.compareTo(intVal)
|
||||
const val compareTo6 = twoVal.compareTo(longVal)
|
||||
const val compareTo7 = twoVal.compareTo(floatVal)
|
||||
const val compareTo8 = twoVal.compareTo(doubleVal)
|
||||
|
||||
const val plus1 = oneVal.plus(twoVal)
|
||||
const val plus2 = twoVal.plus(twoVal)
|
||||
const val plus3 = threeVal.plus(twoVal)
|
||||
const val plus4 = twoVal.plus(shortVal)
|
||||
const val plus5 = twoVal.plus(intVal)
|
||||
const val plus6 = twoVal.plus(longVal)
|
||||
const val plus7 = twoVal.plus(floatVal)
|
||||
const val plus8 = twoVal.plus(doubleVal)
|
||||
|
||||
const val minus1 = oneVal.minus(twoVal)
|
||||
const val minus2 = twoVal.minus(twoVal)
|
||||
const val minus3 = threeVal.minus(twoVal)
|
||||
const val minus4 = twoVal.minus(shortVal)
|
||||
const val minus5 = twoVal.minus(intVal)
|
||||
const val minus6 = twoVal.minus(longVal)
|
||||
const val minus7 = twoVal.minus(floatVal)
|
||||
const val minus8 = twoVal.minus(doubleVal)
|
||||
|
||||
const val times1 = oneVal.times(twoVal)
|
||||
const val times2 = twoVal.times(twoVal)
|
||||
const val times3 = threeVal.times(twoVal)
|
||||
const val times4 = twoVal.times(shortVal)
|
||||
const val times5 = twoVal.times(intVal)
|
||||
const val times6 = twoVal.times(longVal)
|
||||
const val times7 = twoVal.times(floatVal)
|
||||
const val times8 = twoVal.times(doubleVal)
|
||||
|
||||
const val div1 = oneVal.div(twoVal)
|
||||
const val div2 = twoVal.div(twoVal)
|
||||
const val div3 = threeVal.div(twoVal)
|
||||
const val div4 = twoVal.div(shortVal)
|
||||
const val div5 = twoVal.div(intVal)
|
||||
const val div6 = twoVal.div(longVal)
|
||||
const val div7 = twoVal.div(floatVal)
|
||||
const val div8 = twoVal.div(doubleVal)
|
||||
|
||||
const val rem1 = oneVal.rem(twoVal)
|
||||
const val rem2 = twoVal.rem(twoVal)
|
||||
const val rem3 = threeVal.rem(twoVal)
|
||||
const val rem4 = twoVal.rem(shortVal)
|
||||
const val rem5 = twoVal.rem(intVal)
|
||||
const val rem6 = twoVal.rem(longVal)
|
||||
const val rem7 = twoVal.rem(floatVal)
|
||||
const val rem8 = twoVal.rem(doubleVal)
|
||||
|
||||
const val unaryPlus1 = oneVal.unaryPlus()
|
||||
const val unaryPlus2 = minusOneVal.unaryPlus()
|
||||
const val unaryMinus1 = oneVal.unaryMinus()
|
||||
const val unaryMinus2 = minusOneVal.unaryMinus()
|
||||
|
||||
const val convert1 = oneVal.toByte()
|
||||
const val convert2 = oneVal.toChar()
|
||||
const val convert3 = oneVal.toShort()
|
||||
const val convert4 = oneVal.toInt()
|
||||
const val convert5 = oneVal.toLong()
|
||||
const val convert6 = oneVal.toFloat()
|
||||
const val convert7 = oneVal.toDouble()
|
||||
|
||||
const val equals1 = oneVal.equals(twoVal)
|
||||
const val equals2 = twoVal.equals(twoVal)
|
||||
const val equals3 = threeVal.equals(twoVal)
|
||||
const val equals4 = fourVal.equals(twoVal)
|
||||
const val equals5 = oneVal.equals("1")
|
||||
|
||||
const val toString1 = oneVal.toString()
|
||||
const val toString2 = twoVal.toString()
|
||||
|
||||
fun box(): String {
|
||||
if (compareTo1 != -1) return "Fail 1.1"
|
||||
if (compareTo2 != 0) return "Fail 1.2"
|
||||
if (compareTo3 != 1) return "Fail 1.3"
|
||||
if (compareTo4 != 0) return "Fail 1.4"
|
||||
if (compareTo5 != 0) return "Fail 1.5"
|
||||
if (compareTo6 != 0) return "Fail 1.6"
|
||||
if (compareTo7 != 0) return "Fail 1.7"
|
||||
if (compareTo8 != 0) return "Fail 1.8"
|
||||
|
||||
if (plus1 != 3) return "Fail 2.1"
|
||||
if (plus2 != 4) return "Fail 2.2"
|
||||
if (plus3 != 5) return "Fail 2.3"
|
||||
if (plus4 != 4) return "Fail 2.4"
|
||||
if (plus5 != 4) return "Fail 2.5"
|
||||
if (plus6 != 4) return "Fail 2.6"
|
||||
if (plus7 != 4.0f) return "Fail 2.7"
|
||||
if (plus8 != 4.0f) return "Fail 2.8"
|
||||
|
||||
if (minus1 != -1) return "Fail 3.1"
|
||||
if (minus2 != 0) return "Fail 3.2"
|
||||
if (minus3 != 1) return "Fail 3.3"
|
||||
if (minus4 != 0) return "Fail 3.4"
|
||||
if (minus5 != 0) return "Fail 3.5"
|
||||
if (minus6 != 0) return "Fail 3.6"
|
||||
if (minus7 != 0.0f) return "Fail 3.7"
|
||||
if (minus8 != 0.0) return "Fail 3.8"
|
||||
|
||||
if (times1 != 2) return "Fail 4.1"
|
||||
if (times2 != 4) return "Fail 4.2"
|
||||
if (times3 != 6) return "Fail 4.3"
|
||||
if (times4 != 4) return "Fail 4.4"
|
||||
if (times5 != 4) return "Fail 4.5"
|
||||
if (times6 != 4) return "Fail 4.6"
|
||||
if (times7 != 4.0f) return "Fail 4.7"
|
||||
if (times8 != 4.0) return "Fail 4.8"
|
||||
|
||||
if (div1 != 0) return "Fail 5.1"
|
||||
if (div2 != 1) return "Fail 5.2"
|
||||
if (div3 != 1) return "Fail 5.3"
|
||||
if (div4 != 1) return "Fail 5.4"
|
||||
if (div5 != 1) return "Fail 5.5"
|
||||
if (div6 != 1) return "Fail 5.6"
|
||||
if (div7 != 1.0f) return "Fail 5.7"
|
||||
if (div8 != 1.0) return "Fail 5.8"
|
||||
|
||||
if (rem1 != 1) return "Fail 6.1"
|
||||
if (rem2 != 0) return "Fail 6.2"
|
||||
if (rem3 != 1) return "Fail 6.3"
|
||||
if (rem4 != 0) return "Fail 6.4"
|
||||
if (rem5 != 0) return "Fail 6.5"
|
||||
if (rem6 != 0) return "Fail 6.6"
|
||||
if (rem7 != 0.0f) return "Fail 6.7"
|
||||
if (rem8 != 0.0) return "Fail 6.8"
|
||||
|
||||
if (unaryPlus1 != 1) return "Fail 7.1"
|
||||
if (unaryPlus2 != -1) return "Fail 7.2"
|
||||
if (unaryMinus1 != -1) return "Fail 7.3"
|
||||
if (unaryMinus2 != 1) return "Fail 7.4"
|
||||
|
||||
if (convert1 != 1) return "Fail 8.1"
|
||||
if (convert2 != '') return "Fail 8.2"
|
||||
if (convert3 != 1) return "Fail 8.3"
|
||||
if (convert4 != 1) return "Fail 8.4"
|
||||
if (convert5 != 1) return "Fail 8.5"
|
||||
if (convert6 != 1.0f) return "Fail 8.6"
|
||||
if (convert7 != 1.0) return "Fail 8.7"
|
||||
|
||||
if (equals1 != false) return "Fail 9.1"
|
||||
if (equals2 != true) return "Fail 9.2"
|
||||
if (equals3 != false) return "Fail 9.3"
|
||||
if (equals4 != false) return "Fail 9.4"
|
||||
if (equals5 != false) return "Fail 9.5"
|
||||
|
||||
if (toString1 != "1") return "Fail 10.1"
|
||||
if (toString2 != "2") return "Fail 10.2"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
+96
@@ -0,0 +1,96 @@
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// WITH_STDLIB
|
||||
|
||||
const val oneVal = '1'
|
||||
const val twoVal = '2'
|
||||
const val threeVal = '3'
|
||||
const val fourVal = '4'
|
||||
|
||||
const val intVal = 5
|
||||
|
||||
const val compareTo1 = oneVal.compareTo(twoVal)
|
||||
const val compareTo2 = twoVal.compareTo(twoVal)
|
||||
const val compareTo3 = threeVal.compareTo(twoVal)
|
||||
const val compareTo4 = fourVal.compareTo(twoVal)
|
||||
|
||||
const val plus1 = oneVal.plus(intVal)
|
||||
const val plus2 = twoVal.plus(intVal)
|
||||
const val plus3 = threeVal.plus(intVal)
|
||||
const val plus4 = fourVal.plus(intVal)
|
||||
|
||||
const val minusChar1 = oneVal.minus(twoVal)
|
||||
const val minusChar2 = twoVal.minus(twoVal)
|
||||
const val minusChar3 = threeVal.minus(twoVal)
|
||||
const val minusChar4 = fourVal.minus(twoVal)
|
||||
|
||||
const val minusInt1 = oneVal.minus(intVal)
|
||||
const val minusInt2 = twoVal.minus(intVal)
|
||||
const val minusInt3 = threeVal.minus(intVal)
|
||||
const val minusInt4 = fourVal.minus(intVal)
|
||||
|
||||
const val convert1 = oneVal.toByte()
|
||||
const val convert2 = oneVal.toChar()
|
||||
const val convert3 = oneVal.toShort()
|
||||
const val convert4 = oneVal.toInt()
|
||||
const val convert5 = oneVal.toLong()
|
||||
const val convert6 = oneVal.toFloat()
|
||||
const val convert7 = oneVal.toDouble()
|
||||
|
||||
const val equals1 = oneVal.equals(twoVal)
|
||||
const val equals2 = twoVal.equals(twoVal)
|
||||
const val equals3 = threeVal.equals(twoVal)
|
||||
const val equals4 = fourVal.equals(twoVal)
|
||||
const val equals5 = oneVal.equals(1)
|
||||
|
||||
const val toString1 = oneVal.toString()
|
||||
const val toString2 = twoVal.toString()
|
||||
|
||||
const val code1 = oneVal.code
|
||||
const val code2 = twoVal.code
|
||||
const val code3 = threeVal.code
|
||||
const val code4 = fourVal.code
|
||||
|
||||
fun box(): String {
|
||||
if (compareTo1 != -1) return "Fail 1.1"
|
||||
if (compareTo2 != 0) return "Fail 1.2"
|
||||
if (compareTo3 != 1) return "Fail 1.3"
|
||||
if (compareTo4 != 1) return "Fail 1.4"
|
||||
|
||||
if (plus1 != '6') return "Fail 2.1"
|
||||
if (plus2 != '7') return "Fail 2.2"
|
||||
if (plus3 != '8') return "Fail 2.3"
|
||||
if (plus4 != '9') return "Fail 2.4"
|
||||
|
||||
if (minusChar1 != -1) return "Fail 3.1"
|
||||
if (minusChar2 != 0) return "Fail 3.2"
|
||||
if (minusChar3 != 1) return "Fail 3.3"
|
||||
if (minusChar4 != 2) return "Fail 3.4"
|
||||
|
||||
if (minusInt1 != ',') return "Fail 4.1"
|
||||
if (minusInt2 != '-') return "Fail 4.2"
|
||||
if (minusInt3 != '.') return "Fail 4.3"
|
||||
if (minusInt4 != '/') return "Fail 4.4"
|
||||
|
||||
if (convert1 != 49.toByte()) return "Fail 5.1"
|
||||
if (convert2 != '1') return "Fail 5.2"
|
||||
if (convert3 != 49.toShort()) return "Fail 5.3"
|
||||
if (convert4 != 49) return "Fail 5.4"
|
||||
if (convert5 != 49L) return "Fail 5.5"
|
||||
if (convert6 != 49.0f) return "Fail 5.6"
|
||||
if (convert7 != 49.0) return "Fail 5.7"
|
||||
|
||||
if (equals1 != false) return "Fail 6.1"
|
||||
if (equals2 != true) return "Fail 6.2"
|
||||
if (equals3 != false) return "Fail 6.3"
|
||||
if (equals4 != false) return "Fail 6.4"
|
||||
if (equals5 != false) return "Fail 6.5"
|
||||
|
||||
if (toString1 != "1") return "Fail 7.1"
|
||||
if (toString2 != "2") return "Fail 7.2"
|
||||
|
||||
if (code1 != 49) return "Fail 8.1"
|
||||
if (code2 != 50) return "Fail 8.2"
|
||||
if (code3 != 51) return "Fail 8.3"
|
||||
if (code4 != 52) return "Fail 8.4"
|
||||
return "OK"
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// IGNORE_BACKEND_K1: JVM_IR
|
||||
// WITH_STDLIB
|
||||
|
||||
const val trimIndent = "123".trimIndent()
|
||||
const val complexTrimIndent =
|
||||
"""
|
||||
ABC
|
||||
123
|
||||
456
|
||||
""".trimIndent()
|
||||
|
||||
fun box(): String {
|
||||
if (trimIndent != "123") return "Fail 1"
|
||||
if (complexTrimIndent != "ABC\n123\n456") return "Fail 2"
|
||||
return "OK"
|
||||
}
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// IGNORE_BACKEND_K1: JVM_IR
|
||||
// WITH_STDLIB
|
||||
|
||||
const val trimMargin = "123".trimMargin()
|
||||
|
||||
const val trimMarginDefault = """ABC
|
||||
|123
|
||||
|456""".trimMargin()
|
||||
|
||||
const val withoutMargin = """
|
||||
#XYZ
|
||||
#foo
|
||||
#bar
|
||||
""".trimMargin("#")
|
||||
|
||||
fun box(): String {
|
||||
if (trimMargin != "123") return "Fail 1"
|
||||
if (trimMarginDefault != "ABC\n123\n456") return "Fail 2"
|
||||
if (withoutMargin != "XYZ\nfoo\nbar") return "Fail 3"
|
||||
return "OK"
|
||||
}
|
||||
+167
@@ -0,0 +1,167 @@
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// IGNORE_BACKEND_K1: JVM_IR
|
||||
|
||||
const val minusOneVal = -1.0
|
||||
const val oneVal = 1.0
|
||||
const val twoVal = 2.0
|
||||
const val threeVal = 3.0
|
||||
const val fourVal = 4.0
|
||||
|
||||
const val byteVal = 2.toByte()
|
||||
const val shortVal = 2.toShort()
|
||||
const val intVal = 2
|
||||
const val longVal = 2L
|
||||
const val floatVal = 2.0f
|
||||
const val doubleVal = 2.0
|
||||
|
||||
const val compareTo1 = oneVal.compareTo(twoVal)
|
||||
const val compareTo2 = twoVal.compareTo(twoVal)
|
||||
const val compareTo3 = threeVal.compareTo(twoVal)
|
||||
const val compareTo4 = twoVal.compareTo(byteVal)
|
||||
const val compareTo5 = twoVal.compareTo(shortVal)
|
||||
const val compareTo6 = twoVal.compareTo(intVal)
|
||||
const val compareTo7 = twoVal.compareTo(longVal)
|
||||
const val compareTo8 = twoVal.compareTo(floatVal)
|
||||
|
||||
const val plus1 = oneVal.plus(twoVal)
|
||||
const val plus2 = twoVal.plus(twoVal)
|
||||
const val plus3 = threeVal.plus(twoVal)
|
||||
const val plus4 = twoVal.plus(byteVal)
|
||||
const val plus5 = twoVal.plus(shortVal)
|
||||
const val plus6 = twoVal.plus(intVal)
|
||||
const val plus7 = twoVal.plus(longVal)
|
||||
const val plus8 = twoVal.plus(floatVal)
|
||||
|
||||
const val minus1 = oneVal.minus(twoVal)
|
||||
const val minus2 = twoVal.minus(twoVal)
|
||||
const val minus3 = threeVal.minus(twoVal)
|
||||
const val minus4 = twoVal.minus(byteVal)
|
||||
const val minus5 = twoVal.minus(shortVal)
|
||||
const val minus6 = twoVal.minus(intVal)
|
||||
const val minus7 = twoVal.minus(longVal)
|
||||
const val minus8 = twoVal.minus(floatVal)
|
||||
|
||||
const val times1 = oneVal.times(twoVal)
|
||||
const val times2 = twoVal.times(twoVal)
|
||||
const val times3 = threeVal.times(twoVal)
|
||||
const val times4 = twoVal.times(byteVal)
|
||||
const val times5 = twoVal.times(shortVal)
|
||||
const val times6 = twoVal.times(intVal)
|
||||
const val times7 = twoVal.times(longVal)
|
||||
const val times8 = twoVal.times(floatVal)
|
||||
|
||||
const val div1 = oneVal.div(twoVal)
|
||||
const val div2 = twoVal.div(twoVal)
|
||||
const val div3 = threeVal.div(twoVal)
|
||||
const val div4 = twoVal.div(byteVal)
|
||||
const val div5 = twoVal.div(shortVal)
|
||||
const val div6 = twoVal.div(intVal)
|
||||
const val div7 = twoVal.div(longVal)
|
||||
const val div8 = twoVal.div(floatVal)
|
||||
|
||||
const val rem1 = oneVal.rem(twoVal)
|
||||
const val rem2 = twoVal.rem(twoVal)
|
||||
const val rem3 = threeVal.rem(twoVal)
|
||||
const val rem4 = twoVal.rem(byteVal)
|
||||
const val rem5 = twoVal.rem(shortVal)
|
||||
const val rem6 = twoVal.rem(intVal)
|
||||
const val rem7 = twoVal.rem(longVal)
|
||||
const val rem8 = twoVal.rem(floatVal)
|
||||
|
||||
const val unaryPlus1 = oneVal.unaryPlus()
|
||||
const val unaryPlus2 = minusOneVal.unaryPlus()
|
||||
const val unaryMinus1 = oneVal.unaryMinus()
|
||||
const val unaryMinus2 = minusOneVal.unaryMinus()
|
||||
|
||||
const val convert1 = oneVal.toChar()
|
||||
const val convert2 = oneVal.toInt()
|
||||
const val convert3 = oneVal.toLong()
|
||||
const val convert4 = oneVal.toFloat()
|
||||
const val convert5 = oneVal.toDouble()
|
||||
|
||||
const val equals1 = oneVal.equals(twoVal)
|
||||
const val equals2 = twoVal.equals(twoVal)
|
||||
const val equals3 = threeVal.equals(twoVal)
|
||||
const val equals4 = fourVal.equals(twoVal)
|
||||
const val equals5 = oneVal.equals("1")
|
||||
|
||||
const val toString1 = oneVal.toString()
|
||||
const val toString2 = twoVal.toString()
|
||||
|
||||
fun box(): String {
|
||||
if (compareTo1 != -1) return "Fail 1.1"
|
||||
if (compareTo2 != 0) return "Fail 1.2"
|
||||
if (compareTo3 != 1) return "Fail 1.3"
|
||||
if (compareTo4 != 0) return "Fail 1.4"
|
||||
if (compareTo5 != 0) return "Fail 1.5"
|
||||
if (compareTo6 != 0) return "Fail 1.6"
|
||||
if (compareTo7 != 0) return "Fail 1.7"
|
||||
if (compareTo8 != 0) return "Fail 1.8"
|
||||
|
||||
if (plus1 != 3) return "Fail 2.1"
|
||||
if (plus2 != 4) return "Fail 2.2"
|
||||
if (plus3 != 5) return "Fail 2.3"
|
||||
if (plus4 != 4) return "Fail 2.4"
|
||||
if (plus5 != 4) return "Fail 2.5"
|
||||
if (plus6 != 4) return "Fail 2.6"
|
||||
if (plus7 != 4.0f) return "Fail 2.7"
|
||||
if (plus8 != 4.0) return "Fail 2.8"
|
||||
|
||||
if (minus1 != -1) return "Fail 3.1"
|
||||
if (minus2 != 0) return "Fail 3.2"
|
||||
if (minus3 != 1) return "Fail 3.3"
|
||||
if (minus4 != 0) return "Fail 3.4"
|
||||
if (minus5 != 0) return "Fail 3.5"
|
||||
if (minus6 != 0) return "Fail 3.6"
|
||||
if (minus7 != 0.0f) return "Fail 3.7"
|
||||
if (minus8 != 0.0) return "Fail 3.8"
|
||||
|
||||
if (times1 != 2) return "Fail 4.1"
|
||||
if (times2 != 4) return "Fail 4.2"
|
||||
if (times3 != 6) return "Fail 4.3"
|
||||
if (times4 != 4) return "Fail 4.4"
|
||||
if (times5 != 4) return "Fail 4.5"
|
||||
if (times6 != 4) return "Fail 4.6"
|
||||
if (times7 != 4.0f) return "Fail 4.7"
|
||||
if (times8 != 4.0) return "Fail 4.8"
|
||||
|
||||
if (div1 != 0.5) return "Fail 5.1"
|
||||
if (div2 != 1.0) return "Fail 5.2"
|
||||
if (div3 != 1.5) return "Fail 5.3"
|
||||
if (div4 != 1) return "Fail 5.4"
|
||||
if (div5 != 1) return "Fail 5.5"
|
||||
if (div6 != 1) return "Fail 5.6"
|
||||
if (div7 != 1.0f) return "Fail 5.7"
|
||||
if (div8 != 1.0) return "Fail 5.8"
|
||||
|
||||
if (rem1 != 1) return "Fail 6.1"
|
||||
if (rem2 != 0) return "Fail 6.2"
|
||||
if (rem3 != 1) return "Fail 6.3"
|
||||
if (rem4 != 0) return "Fail 6.4"
|
||||
if (rem5 != 0) return "Fail 6.5"
|
||||
if (rem6 != 0) return "Fail 6.6"
|
||||
if (rem7 != 0.0f) return "Fail 6.7"
|
||||
if (rem8 != 0.0) return "Fail 6.8"
|
||||
|
||||
if (unaryPlus1 != 1) return "Fail 7.1"
|
||||
if (unaryPlus2 != -1) return "Fail 7.2"
|
||||
if (unaryMinus1 != -1) return "Fail 7.3"
|
||||
if (unaryMinus2 != 1) return "Fail 7.4"
|
||||
|
||||
if (convert1 != '') return "Fail 8.1"
|
||||
if (convert2 != 1) return "Fail 8.2"
|
||||
if (convert3 != 1) return "Fail 8.3"
|
||||
if (convert4 != 1.0f) return "Fail 8.4"
|
||||
if (convert5 != 1.0) return "Fail 8.5"
|
||||
|
||||
if (equals1 != false) return "Fail 9.1"
|
||||
if (equals2 != true) return "Fail 9.2"
|
||||
if (equals3 != false) return "Fail 9.3"
|
||||
if (equals4 != false) return "Fail 9.4"
|
||||
if (equals5 != false) return "Fail 9.5"
|
||||
|
||||
if (toString1 != "1.0") return "Fail 10.1"
|
||||
if (toString2 != "2.0") return "Fail 10.2"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// IGNORE_BACKEND_K1: JVM_IR
|
||||
|
||||
enum class EnumClass {
|
||||
OK, VALUE, anotherValue, WITH_UNDERSCORE
|
||||
}
|
||||
|
||||
const val name1 = EnumClass.OK.name
|
||||
const val name2 = EnumClass.VALUE.name
|
||||
const val name3 = EnumClass.anotherValue.name
|
||||
const val name4 = EnumClass.WITH_UNDERSCORE.name
|
||||
|
||||
fun box(): String {
|
||||
if (name2 != "VALUE") return "Fail 1"
|
||||
if (name3 != "anotherValue") return "Fail 2"
|
||||
if (name4 != "WITH_UNDERSCORE") return "Fail 3"
|
||||
return name1
|
||||
}
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// IGNORE_BACKEND_K1: JVM_IR
|
||||
// IGNORE_FIR_DIAGNOSTICS
|
||||
// !DIAGNOSTICS: -UNINITIALIZED_ENUM_ENTRY
|
||||
|
||||
enum class TestEnum(val testNaming: String) {
|
||||
OK(OK.name),
|
||||
}
|
||||
|
||||
const val name = TestEnum.OK.name
|
||||
|
||||
fun box(): String {
|
||||
return name
|
||||
}
|
||||
+167
@@ -0,0 +1,167 @@
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// IGNORE_BACKEND_K1: JVM_IR
|
||||
|
||||
const val minusOneVal = -1.0f
|
||||
const val oneVal = 1.0f
|
||||
const val twoVal = 2.0f
|
||||
const val threeVal = 3.0f
|
||||
const val fourVal = 4.0f
|
||||
|
||||
const val byteVal = 2.toByte()
|
||||
const val shortVal = 2.toShort()
|
||||
const val intVal = 2
|
||||
const val longVal = 2L
|
||||
const val floatVal = 2.0f
|
||||
const val doubleVal = 2.0
|
||||
|
||||
const val compareTo1 = oneVal.compareTo(twoVal)
|
||||
const val compareTo2 = twoVal.compareTo(twoVal)
|
||||
const val compareTo3 = threeVal.compareTo(twoVal)
|
||||
const val compareTo4 = twoVal.compareTo(byteVal)
|
||||
const val compareTo5 = twoVal.compareTo(shortVal)
|
||||
const val compareTo6 = twoVal.compareTo(intVal)
|
||||
const val compareTo7 = twoVal.compareTo(longVal)
|
||||
const val compareTo8 = twoVal.compareTo(doubleVal)
|
||||
|
||||
const val plus1 = oneVal.plus(twoVal)
|
||||
const val plus2 = twoVal.plus(twoVal)
|
||||
const val plus3 = threeVal.plus(twoVal)
|
||||
const val plus4 = twoVal.plus(byteVal)
|
||||
const val plus5 = twoVal.plus(shortVal)
|
||||
const val plus6 = twoVal.plus(intVal)
|
||||
const val plus7 = twoVal.plus(longVal)
|
||||
const val plus8 = twoVal.plus(doubleVal)
|
||||
|
||||
const val minus1 = oneVal.minus(twoVal)
|
||||
const val minus2 = twoVal.minus(twoVal)
|
||||
const val minus3 = threeVal.minus(twoVal)
|
||||
const val minus4 = twoVal.minus(byteVal)
|
||||
const val minus5 = twoVal.minus(shortVal)
|
||||
const val minus6 = twoVal.minus(intVal)
|
||||
const val minus7 = twoVal.minus(longVal)
|
||||
const val minus8 = twoVal.minus(doubleVal)
|
||||
|
||||
const val times1 = oneVal.times(twoVal)
|
||||
const val times2 = twoVal.times(twoVal)
|
||||
const val times3 = threeVal.times(twoVal)
|
||||
const val times4 = twoVal.times(byteVal)
|
||||
const val times5 = twoVal.times(shortVal)
|
||||
const val times6 = twoVal.times(intVal)
|
||||
const val times7 = twoVal.times(longVal)
|
||||
const val times8 = twoVal.times(doubleVal)
|
||||
|
||||
const val div1 = oneVal.div(twoVal)
|
||||
const val div2 = twoVal.div(twoVal)
|
||||
const val div3 = threeVal.div(twoVal)
|
||||
const val div4 = twoVal.div(byteVal)
|
||||
const val div5 = twoVal.div(shortVal)
|
||||
const val div6 = twoVal.div(intVal)
|
||||
const val div7 = twoVal.div(longVal)
|
||||
const val div8 = twoVal.div(doubleVal)
|
||||
|
||||
const val rem1 = oneVal.rem(twoVal)
|
||||
const val rem2 = twoVal.rem(twoVal)
|
||||
const val rem3 = threeVal.rem(twoVal)
|
||||
const val rem4 = twoVal.rem(byteVal)
|
||||
const val rem5 = twoVal.rem(shortVal)
|
||||
const val rem6 = twoVal.rem(intVal)
|
||||
const val rem7 = twoVal.rem(longVal)
|
||||
const val rem8 = twoVal.rem(doubleVal)
|
||||
|
||||
const val unaryPlus1 = oneVal.unaryPlus()
|
||||
const val unaryPlus2 = minusOneVal.unaryPlus()
|
||||
const val unaryMinus1 = oneVal.unaryMinus()
|
||||
const val unaryMinus2 = minusOneVal.unaryMinus()
|
||||
|
||||
const val convert1 = oneVal.toChar()
|
||||
const val convert2 = oneVal.toInt()
|
||||
const val convert3 = oneVal.toLong()
|
||||
const val convert4 = oneVal.toFloat()
|
||||
const val convert5 = oneVal.toDouble()
|
||||
|
||||
const val equals1 = oneVal.equals(twoVal)
|
||||
const val equals2 = twoVal.equals(twoVal)
|
||||
const val equals3 = threeVal.equals(twoVal)
|
||||
const val equals4 = fourVal.equals(twoVal)
|
||||
const val equals5 = oneVal.equals("1")
|
||||
|
||||
const val toString1 = oneVal.toString()
|
||||
const val toString2 = twoVal.toString()
|
||||
|
||||
fun box(): String {
|
||||
if (compareTo1 != -1) return "Fail 1.1"
|
||||
if (compareTo2 != 0) return "Fail 1.2"
|
||||
if (compareTo3 != 1) return "Fail 1.3"
|
||||
if (compareTo4 != 0) return "Fail 1.4"
|
||||
if (compareTo5 != 0) return "Fail 1.5"
|
||||
if (compareTo6 != 0) return "Fail 1.6"
|
||||
if (compareTo7 != 0) return "Fail 1.7"
|
||||
if (compareTo8 != 0) return "Fail 1.8"
|
||||
|
||||
if (plus1 != 3) return "Fail 2.1"
|
||||
if (plus2 != 4) return "Fail 2.2"
|
||||
if (plus3 != 5) return "Fail 2.3"
|
||||
if (plus4 != 4) return "Fail 2.4"
|
||||
if (plus5 != 4) return "Fail 2.5"
|
||||
if (plus6 != 4) return "Fail 2.6"
|
||||
if (plus7 != 4.0f) return "Fail 2.7"
|
||||
if (plus8 != 4.0) return "Fail 2.8"
|
||||
|
||||
if (minus1 != -1) return "Fail 3.1"
|
||||
if (minus2 != 0) return "Fail 3.2"
|
||||
if (minus3 != 1) return "Fail 3.3"
|
||||
if (minus4 != 0) return "Fail 3.4"
|
||||
if (minus5 != 0) return "Fail 3.5"
|
||||
if (minus6 != 0) return "Fail 3.6"
|
||||
if (minus7 != 0.0f) return "Fail 3.7"
|
||||
if (minus8 != 0.0) return "Fail 3.8"
|
||||
|
||||
if (times1 != 2) return "Fail 4.1"
|
||||
if (times2 != 4) return "Fail 4.2"
|
||||
if (times3 != 6) return "Fail 4.3"
|
||||
if (times4 != 4) return "Fail 4.4"
|
||||
if (times5 != 4) return "Fail 4.5"
|
||||
if (times6 != 4) return "Fail 4.6"
|
||||
if (times7 != 4.0f) return "Fail 4.7"
|
||||
if (times8 != 4.0) return "Fail 4.8"
|
||||
|
||||
if (div1 != 0.5f) return "Fail 5.1"
|
||||
if (div2 != 1.0f) return "Fail 5.2"
|
||||
if (div3 != 1.5f) return "Fail 5.3"
|
||||
if (div4 != 1) return "Fail 5.4"
|
||||
if (div5 != 1) return "Fail 5.5"
|
||||
if (div6 != 1) return "Fail 5.6"
|
||||
if (div7 != 1.0f) return "Fail 5.7"
|
||||
if (div8 != 1.0) return "Fail 5.8"
|
||||
|
||||
if (rem1 != 1) return "Fail 6.1"
|
||||
if (rem2 != 0) return "Fail 6.2"
|
||||
if (rem3 != 1) return "Fail 6.3"
|
||||
if (rem4 != 0) return "Fail 6.4"
|
||||
if (rem5 != 0) return "Fail 6.5"
|
||||
if (rem6 != 0) return "Fail 6.6"
|
||||
if (rem7 != 0.0f) return "Fail 6.7"
|
||||
if (rem8 != 0.0) return "Fail 6.8"
|
||||
|
||||
if (unaryPlus1 != 1) return "Fail 7.1"
|
||||
if (unaryPlus2 != -1) return "Fail 7.2"
|
||||
if (unaryMinus1 != -1) return "Fail 7.3"
|
||||
if (unaryMinus2 != 1) return "Fail 7.4"
|
||||
|
||||
if (convert1 != '') return "Fail 8.1"
|
||||
if (convert2 != 1) return "Fail 8.2"
|
||||
if (convert3 != 1) return "Fail 8.3"
|
||||
if (convert4 != 1.0f) return "Fail 8.4"
|
||||
if (convert5 != 1.0) return "Fail 8.5"
|
||||
|
||||
if (equals1 != false) return "Fail 9.1"
|
||||
if (equals2 != true) return "Fail 9.2"
|
||||
if (equals3 != false) return "Fail 9.3"
|
||||
if (equals4 != false) return "Fail 9.4"
|
||||
if (equals5 != false) return "Fail 9.5"
|
||||
|
||||
if (toString1 != "1.0") return "Fail 10.1"
|
||||
if (toString2 != "2.0") return "Fail 10.2"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// IGNORE_BACKEND_K1: JVM_IR
|
||||
|
||||
const val flag = true
|
||||
const val value = 10
|
||||
const val condition = if (flag) "True" else "Error"
|
||||
const val withWhen = when (flag) {
|
||||
true -> "True"
|
||||
else -> "Error"
|
||||
}
|
||||
const val withWhen2 = when {
|
||||
flag == true -> "True"
|
||||
else -> "Error"
|
||||
}
|
||||
const val withWhen3 = when(value) {
|
||||
10 -> "1"
|
||||
100 -> "2"
|
||||
else -> "3"
|
||||
}
|
||||
const val multibranchIf = if (value == 100) 1 else if (value == 1000) 2 else 3
|
||||
|
||||
fun box(): String {
|
||||
if (condition != "True") return "Fail 1"
|
||||
if (withWhen != "True") return "Fail 2"
|
||||
if (withWhen2 != "True") return "Fail 3"
|
||||
if (withWhen3 != "1") return "Fail 4"
|
||||
if (multibranchIf != 3) return "Fail 5"
|
||||
return "OK"
|
||||
}
|
||||
+171
@@ -0,0 +1,171 @@
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// IGNORE_BACKEND_K1: JVM_IR
|
||||
|
||||
const val minusOneVal = -1
|
||||
const val oneVal = 1
|
||||
const val twoVal = 2
|
||||
const val threeVal = 3
|
||||
const val fourVal = 4
|
||||
|
||||
const val byteVal = 2.toByte()
|
||||
const val shortVal = 2.toShort()
|
||||
const val intVal = 2
|
||||
const val longVal = 2L
|
||||
const val floatVal = 2.0f
|
||||
const val doubleVal = 2.0
|
||||
|
||||
const val compareTo1 = oneVal.compareTo(twoVal)
|
||||
const val compareTo2 = twoVal.compareTo(twoVal)
|
||||
const val compareTo3 = threeVal.compareTo(twoVal)
|
||||
const val compareTo4 = twoVal.compareTo(byteVal)
|
||||
const val compareTo5 = twoVal.compareTo(shortVal)
|
||||
const val compareTo6 = twoVal.compareTo(longVal)
|
||||
const val compareTo7 = twoVal.compareTo(floatVal)
|
||||
const val compareTo8 = twoVal.compareTo(doubleVal)
|
||||
|
||||
const val plus1 = oneVal.plus(twoVal)
|
||||
const val plus2 = twoVal.plus(twoVal)
|
||||
const val plus3 = threeVal.plus(twoVal)
|
||||
const val plus4 = twoVal.plus(byteVal)
|
||||
const val plus5 = twoVal.plus(shortVal)
|
||||
const val plus6 = twoVal.plus(longVal)
|
||||
const val plus7 = twoVal.plus(floatVal)
|
||||
const val plus8 = twoVal.plus(doubleVal)
|
||||
|
||||
const val minus1 = oneVal.minus(twoVal)
|
||||
const val minus2 = twoVal.minus(twoVal)
|
||||
const val minus3 = threeVal.minus(twoVal)
|
||||
const val minus4 = twoVal.minus(byteVal)
|
||||
const val minus5 = twoVal.minus(shortVal)
|
||||
const val minus6 = twoVal.minus(longVal)
|
||||
const val minus7 = twoVal.minus(floatVal)
|
||||
const val minus8 = twoVal.minus(doubleVal)
|
||||
|
||||
const val times1 = oneVal.times(twoVal)
|
||||
const val times2 = twoVal.times(twoVal)
|
||||
const val times3 = threeVal.times(twoVal)
|
||||
const val times4 = twoVal.times(byteVal)
|
||||
const val times5 = twoVal.times(shortVal)
|
||||
const val times6 = twoVal.times(longVal)
|
||||
const val times7 = twoVal.times(floatVal)
|
||||
const val times8 = twoVal.times(doubleVal)
|
||||
|
||||
const val div1 = oneVal.div(twoVal)
|
||||
const val div2 = twoVal.div(twoVal)
|
||||
const val div3 = threeVal.div(twoVal)
|
||||
const val div4 = twoVal.div(byteVal)
|
||||
const val div5 = twoVal.div(shortVal)
|
||||
const val div6 = twoVal.div(longVal)
|
||||
const val div7 = twoVal.div(floatVal)
|
||||
const val div8 = twoVal.div(doubleVal)
|
||||
|
||||
const val rem1 = oneVal.rem(twoVal)
|
||||
const val rem2 = twoVal.rem(twoVal)
|
||||
const val rem3 = threeVal.rem(twoVal)
|
||||
const val rem4 = twoVal.rem(byteVal)
|
||||
const val rem5 = twoVal.rem(shortVal)
|
||||
const val rem6 = twoVal.rem(longVal)
|
||||
const val rem7 = twoVal.rem(floatVal)
|
||||
const val rem8 = twoVal.rem(doubleVal)
|
||||
|
||||
const val unaryPlus1 = oneVal.unaryPlus()
|
||||
const val unaryPlus2 = minusOneVal.unaryPlus()
|
||||
const val unaryMinus1 = oneVal.unaryMinus()
|
||||
const val unaryMinus2 = minusOneVal.unaryMinus()
|
||||
|
||||
const val convert1 = oneVal.toByte()
|
||||
const val convert2 = oneVal.toChar()
|
||||
const val convert3 = oneVal.toShort()
|
||||
const val convert4 = oneVal.toInt()
|
||||
const val convert5 = oneVal.toLong()
|
||||
const val convert6 = oneVal.toFloat()
|
||||
const val convert7 = oneVal.toDouble()
|
||||
|
||||
const val equals1 = oneVal.equals(twoVal)
|
||||
const val equals2 = twoVal.equals(twoVal)
|
||||
const val equals3 = threeVal.equals(twoVal)
|
||||
const val equals4 = fourVal.equals(twoVal)
|
||||
const val equals5 = oneVal.equals("1")
|
||||
|
||||
const val toString1 = oneVal.toString()
|
||||
const val toString2 = twoVal.toString()
|
||||
|
||||
fun box(): String {
|
||||
if (compareTo1 != -1) return "Fail 1.1"
|
||||
if (compareTo2 != 0) return "Fail 1.2"
|
||||
if (compareTo3 != 1) return "Fail 1.3"
|
||||
if (compareTo4 != 0) return "Fail 1.4"
|
||||
if (compareTo5 != 0) return "Fail 1.5"
|
||||
if (compareTo6 != 0) return "Fail 1.6"
|
||||
if (compareTo7 != 0) return "Fail 1.7"
|
||||
if (compareTo8 != 0) return "Fail 1.8"
|
||||
|
||||
if (plus1 != 3) return "Fail 2.1"
|
||||
if (plus2 != 4) return "Fail 2.2"
|
||||
if (plus3 != 5) return "Fail 2.3"
|
||||
if (plus4 != 4) return "Fail 2.4"
|
||||
if (plus5 != 4) return "Fail 2.5"
|
||||
if (plus6 != 4) return "Fail 2.6"
|
||||
if (plus7 != 4.0f) return "Fail 2.7"
|
||||
if (plus8 != 4.0) return "Fail 2.8"
|
||||
|
||||
if (minus1 != -1) return "Fail 3.1"
|
||||
if (minus2 != 0) return "Fail 3.2"
|
||||
if (minus3 != 1) return "Fail 3.3"
|
||||
if (minus4 != 0) return "Fail 3.4"
|
||||
if (minus5 != 0) return "Fail 3.5"
|
||||
if (minus6 != 0) return "Fail 3.6"
|
||||
if (minus7 != 0.0f) return "Fail 3.7"
|
||||
if (minus8 != 0.0) return "Fail 3.8"
|
||||
|
||||
if (times1 != 2) return "Fail 4.1"
|
||||
if (times2 != 4) return "Fail 4.2"
|
||||
if (times3 != 6) return "Fail 4.3"
|
||||
if (times4 != 4) return "Fail 4.4"
|
||||
if (times5 != 4) return "Fail 4.5"
|
||||
if (times6 != 4) return "Fail 4.6"
|
||||
if (times7 != 4.0f) return "Fail 4.7"
|
||||
if (times8 != 4.0) return "Fail 4.8"
|
||||
|
||||
if (div1 != 0) return "Fail 5.1"
|
||||
if (div2 != 1) return "Fail 5.2"
|
||||
if (div3 != 1) return "Fail 5.3"
|
||||
if (div4 != 1) return "Fail 5.4"
|
||||
if (div5 != 1) return "Fail 5.5"
|
||||
if (div6 != 1) return "Fail 5.6"
|
||||
if (div7 != 1.0f) return "Fail 5.7"
|
||||
if (div8 != 1.0) return "Fail 5.8"
|
||||
|
||||
if (rem1 != 1) return "Fail 6.1"
|
||||
if (rem2 != 0) return "Fail 6.2"
|
||||
if (rem3 != 1) return "Fail 6.3"
|
||||
if (rem4 != 0) return "Fail 6.4"
|
||||
if (rem5 != 0) return "Fail 6.5"
|
||||
if (rem6 != 0) return "Fail 6.6"
|
||||
if (rem7 != 0.0f) return "Fail 6.7"
|
||||
if (rem8 != 0.0) return "Fail 6.8"
|
||||
|
||||
if (unaryPlus1 != 1) return "Fail 7.1"
|
||||
if (unaryPlus2 != -1) return "Fail 7.2"
|
||||
if (unaryMinus1 != -1) return "Fail 7.3"
|
||||
if (unaryMinus2 != 1) return "Fail 7.4"
|
||||
|
||||
if (convert1 != 1) return "Fail 8.1"
|
||||
if (convert2 != '') return "Fail 8.2"
|
||||
if (convert3 != 1) return "Fail 8.3"
|
||||
if (convert4 != 1) return "Fail 8.4"
|
||||
if (convert5 != 1) return "Fail 8.5"
|
||||
if (convert6 != 1.0f) return "Fail 8.6"
|
||||
if (convert7 != 1.0) return "Fail 8.7"
|
||||
|
||||
if (equals1 != false) return "Fail 9.1"
|
||||
if (equals2 != true) return "Fail 9.2"
|
||||
if (equals3 != false) return "Fail 9.3"
|
||||
if (equals4 != false) return "Fail 9.4"
|
||||
if (equals5 != false) return "Fail 9.5"
|
||||
|
||||
if (toString1 != "1") return "Fail 10.1"
|
||||
if (toString2 != "2") return "Fail 10.2"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// IGNORE_BACKEND_K1: JVM_IR
|
||||
|
||||
class A(val OK: Int, val somePropertyWithLongName: String) {
|
||||
fun foo() {}
|
||||
}
|
||||
val topLevelProp = 1
|
||||
|
||||
const val propertyName1 = A::OK.name
|
||||
const val propertyName2 = A::somePropertyWithLongName.name
|
||||
const val methodName = A::foo.name
|
||||
const val className = ::A.name
|
||||
const val topLevelPropName = ::topLevelProp.name
|
||||
|
||||
fun box(): String {
|
||||
if (propertyName1 != "OK") return "Fail 1"
|
||||
if (propertyName2 != "somePropertyWithLongName") return "Fail 2"
|
||||
if (methodName != "foo") return "Fail 3"
|
||||
if (className != "<init>") return "Fail 4"
|
||||
if (topLevelPropName != "topLevelProp") return "Fail 5"
|
||||
return "OK"
|
||||
}
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// IGNORE_BACKEND_K1: JVM_IR
|
||||
|
||||
// FILE: 1.kt
|
||||
|
||||
const val name = E.OK.name
|
||||
fun box(): String = name
|
||||
|
||||
// FILE: 2.kt
|
||||
|
||||
enum class E(val parent: E?) {
|
||||
X(null),
|
||||
OK(X),
|
||||
}
|
||||
+171
@@ -0,0 +1,171 @@
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// IGNORE_BACKEND_K1: JVM_IR
|
||||
|
||||
const val minusOneVal = -1L
|
||||
const val oneVal = 1L
|
||||
const val twoVal = 2L
|
||||
const val threeVal = 3L
|
||||
const val fourVal = 4L
|
||||
|
||||
const val byteVal = 2.toByte()
|
||||
const val shortVal = 2.toShort()
|
||||
const val intVal = 2
|
||||
const val longVal = 2L
|
||||
const val floatVal = 2.0f
|
||||
const val doubleVal = 2.0
|
||||
|
||||
const val compareTo1 = oneVal.compareTo(twoVal)
|
||||
const val compareTo2 = twoVal.compareTo(twoVal)
|
||||
const val compareTo3 = threeVal.compareTo(twoVal)
|
||||
const val compareTo4 = twoVal.compareTo(byteVal)
|
||||
const val compareTo5 = twoVal.compareTo(shortVal)
|
||||
const val compareTo6 = twoVal.compareTo(intVal)
|
||||
const val compareTo7 = twoVal.compareTo(floatVal)
|
||||
const val compareTo8 = twoVal.compareTo(doubleVal)
|
||||
|
||||
const val plus1 = oneVal.plus(twoVal)
|
||||
const val plus2 = twoVal.plus(twoVal)
|
||||
const val plus3 = threeVal.plus(twoVal)
|
||||
const val plus4 = twoVal.plus(byteVal)
|
||||
const val plus5 = twoVal.plus(shortVal)
|
||||
const val plus6 = twoVal.plus(intVal)
|
||||
const val plus7 = twoVal.plus(floatVal)
|
||||
const val plus8 = twoVal.plus(doubleVal)
|
||||
|
||||
const val minus1 = oneVal.minus(twoVal)
|
||||
const val minus2 = twoVal.minus(twoVal)
|
||||
const val minus3 = threeVal.minus(twoVal)
|
||||
const val minus4 = twoVal.minus(byteVal)
|
||||
const val minus5 = twoVal.minus(shortVal)
|
||||
const val minus6 = twoVal.minus(intVal)
|
||||
const val minus7 = twoVal.minus(floatVal)
|
||||
const val minus8 = twoVal.minus(doubleVal)
|
||||
|
||||
const val times1 = oneVal.times(twoVal)
|
||||
const val times2 = twoVal.times(twoVal)
|
||||
const val times3 = threeVal.times(twoVal)
|
||||
const val times4 = twoVal.times(byteVal)
|
||||
const val times5 = twoVal.times(shortVal)
|
||||
const val times6 = twoVal.times(intVal)
|
||||
const val times7 = twoVal.times(floatVal)
|
||||
const val times8 = twoVal.times(doubleVal)
|
||||
|
||||
const val div1 = oneVal.div(twoVal)
|
||||
const val div2 = twoVal.div(twoVal)
|
||||
const val div3 = threeVal.div(twoVal)
|
||||
const val div4 = twoVal.div(byteVal)
|
||||
const val div5 = twoVal.div(shortVal)
|
||||
const val div6 = twoVal.div(intVal)
|
||||
const val div7 = twoVal.div(floatVal)
|
||||
const val div8 = twoVal.div(doubleVal)
|
||||
|
||||
const val rem1 = oneVal.rem(twoVal)
|
||||
const val rem2 = twoVal.rem(twoVal)
|
||||
const val rem3 = threeVal.rem(twoVal)
|
||||
const val rem4 = twoVal.rem(byteVal)
|
||||
const val rem5 = twoVal.rem(shortVal)
|
||||
const val rem6 = twoVal.rem(intVal)
|
||||
const val rem7 = twoVal.rem(floatVal)
|
||||
const val rem8 = twoVal.rem(doubleVal)
|
||||
|
||||
const val unaryPlus1 = oneVal.unaryPlus()
|
||||
const val unaryPlus2 = minusOneVal.unaryPlus()
|
||||
const val unaryMinus1 = oneVal.unaryMinus()
|
||||
const val unaryMinus2 = minusOneVal.unaryMinus()
|
||||
|
||||
const val convert1 = oneVal.toByte()
|
||||
const val convert2 = oneVal.toChar()
|
||||
const val convert3 = oneVal.toShort()
|
||||
const val convert4 = oneVal.toInt()
|
||||
const val convert5 = oneVal.toLong()
|
||||
const val convert6 = oneVal.toFloat()
|
||||
const val convert7 = oneVal.toDouble()
|
||||
|
||||
const val equals1 = oneVal.equals(twoVal)
|
||||
const val equals2 = twoVal.equals(twoVal)
|
||||
const val equals3 = threeVal.equals(twoVal)
|
||||
const val equals4 = fourVal.equals(twoVal)
|
||||
const val equals5 = oneVal.equals("1")
|
||||
|
||||
const val toString1 = oneVal.toString()
|
||||
const val toString2 = twoVal.toString()
|
||||
|
||||
fun box(): String {
|
||||
if (compareTo1 != -1) return "Fail 1.1"
|
||||
if (compareTo2 != 0) return "Fail 1.2"
|
||||
if (compareTo3 != 1) return "Fail 1.3"
|
||||
if (compareTo4 != 0) return "Fail 1.4"
|
||||
if (compareTo5 != 0) return "Fail 1.5"
|
||||
if (compareTo6 != 0) return "Fail 1.6"
|
||||
if (compareTo7 != 0) return "Fail 1.7"
|
||||
if (compareTo8 != 0) return "Fail 1.8"
|
||||
|
||||
if (plus1 != 3) return "Fail 2.1"
|
||||
if (plus2 != 4) return "Fail 2.2"
|
||||
if (plus3 != 5) return "Fail 2.3"
|
||||
if (plus4 != 4) return "Fail 2.4"
|
||||
if (plus5 != 4) return "Fail 2.5"
|
||||
if (plus6 != 4) return "Fail 2.6"
|
||||
if (plus7 != 4.0f) return "Fail 2.7"
|
||||
if (plus8 != 4.0) return "Fail 2.8"
|
||||
|
||||
if (minus1 != -1) return "Fail 3.1"
|
||||
if (minus2 != 0) return "Fail 3.2"
|
||||
if (minus3 != 1) return "Fail 3.3"
|
||||
if (minus4 != 0) return "Fail 3.4"
|
||||
if (minus5 != 0) return "Fail 3.5"
|
||||
if (minus6 != 0) return "Fail 3.6"
|
||||
if (minus7 != 0.0f) return "Fail 3.7"
|
||||
if (minus8 != 0.0) return "Fail 3.8"
|
||||
|
||||
if (times1 != 2) return "Fail 4.1"
|
||||
if (times2 != 4) return "Fail 4.2"
|
||||
if (times3 != 6) return "Fail 4.3"
|
||||
if (times4 != 4) return "Fail 4.4"
|
||||
if (times5 != 4) return "Fail 4.5"
|
||||
if (times6 != 4) return "Fail 4.6"
|
||||
if (times7 != 4.0f) return "Fail 4.7"
|
||||
if (times8 != 4.0) return "Fail 4.8"
|
||||
|
||||
if (div1 != 0) return "Fail 5.1"
|
||||
if (div2 != 1) return "Fail 5.2"
|
||||
if (div3 != 1) return "Fail 5.3"
|
||||
if (div4 != 1) return "Fail 5.4"
|
||||
if (div5 != 1) return "Fail 5.5"
|
||||
if (div6 != 1) return "Fail 5.6"
|
||||
if (div7 != 1.0f) return "Fail 5.7"
|
||||
if (div8 != 1.0) return "Fail 5.8"
|
||||
|
||||
if (rem1 != 1) return "Fail 6.1"
|
||||
if (rem2 != 0) return "Fail 6.2"
|
||||
if (rem3 != 1) return "Fail 6.3"
|
||||
if (rem4 != 0) return "Fail 6.4"
|
||||
if (rem5 != 0) return "Fail 6.5"
|
||||
if (rem6 != 0) return "Fail 6.6"
|
||||
if (rem7 != 0.0f) return "Fail 6.7"
|
||||
if (rem8 != 0.0) return "Fail 6.8"
|
||||
|
||||
if (unaryPlus1 != 1) return "Fail 7.1"
|
||||
if (unaryPlus2 != -1) return "Fail 7.2"
|
||||
if (unaryMinus1 != -1) return "Fail 7.3"
|
||||
if (unaryMinus2 != 1) return "Fail 7.4"
|
||||
|
||||
if (convert1 != 1) return "Fail 8.1"
|
||||
if (convert2 != '') return "Fail 8.2"
|
||||
if (convert3 != 1) return "Fail 8.3"
|
||||
if (convert4 != 1) return "Fail 8.4"
|
||||
if (convert5 != 1) return "Fail 8.5"
|
||||
if (convert6 != 1.0f) return "Fail 8.6"
|
||||
if (convert7 != 1.0) return "Fail 8.7"
|
||||
|
||||
if (equals1 != false) return "Fail 9.1"
|
||||
if (equals2 != true) return "Fail 9.2"
|
||||
if (equals3 != false) return "Fail 9.3"
|
||||
if (equals4 != false) return "Fail 9.4"
|
||||
if (equals5 != false) return "Fail 9.5"
|
||||
|
||||
if (toString1 != "1") return "Fail 10.1"
|
||||
if (toString2 != "2") return "Fail 10.2"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
+171
@@ -0,0 +1,171 @@
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// IGNORE_BACKEND_K1: JVM_IR
|
||||
|
||||
const val minusOneVal = (-1).toShort()
|
||||
const val oneVal = 1.toShort()
|
||||
const val twoVal = 2.toShort()
|
||||
const val threeVal = 3.toShort()
|
||||
const val fourVal = 4.toShort()
|
||||
|
||||
const val byteVal = 2.toByte()
|
||||
const val shortVal = 2.toShort()
|
||||
const val intVal = 2
|
||||
const val longVal = 2L
|
||||
const val floatVal = 2.0f
|
||||
const val doubleVal = 2.0
|
||||
|
||||
const val compareTo1 = oneVal.compareTo(twoVal)
|
||||
const val compareTo2 = twoVal.compareTo(twoVal)
|
||||
const val compareTo3 = threeVal.compareTo(twoVal)
|
||||
const val compareTo4 = twoVal.compareTo(byteVal)
|
||||
const val compareTo5 = twoVal.compareTo(intVal)
|
||||
const val compareTo6 = twoVal.compareTo(longVal)
|
||||
const val compareTo7 = twoVal.compareTo(floatVal)
|
||||
const val compareTo8 = twoVal.compareTo(doubleVal)
|
||||
|
||||
const val plus1 = oneVal.plus(twoVal)
|
||||
const val plus2 = twoVal.plus(twoVal)
|
||||
const val plus3 = threeVal.plus(twoVal)
|
||||
const val plus4 = twoVal.plus(byteVal)
|
||||
const val plus5 = twoVal.plus(intVal)
|
||||
const val plus6 = twoVal.plus(longVal)
|
||||
const val plus7 = twoVal.plus(floatVal)
|
||||
const val plus8 = twoVal.plus(doubleVal)
|
||||
|
||||
const val minus1 = oneVal.minus(twoVal)
|
||||
const val minus2 = twoVal.minus(twoVal)
|
||||
const val minus3 = threeVal.minus(twoVal)
|
||||
const val minus4 = twoVal.minus(byteVal)
|
||||
const val minus5 = twoVal.minus(intVal)
|
||||
const val minus6 = twoVal.minus(longVal)
|
||||
const val minus7 = twoVal.minus(floatVal)
|
||||
const val minus8 = twoVal.minus(doubleVal)
|
||||
|
||||
const val times1 = oneVal.times(twoVal)
|
||||
const val times2 = twoVal.times(twoVal)
|
||||
const val times3 = threeVal.times(twoVal)
|
||||
const val times4 = twoVal.times(byteVal)
|
||||
const val times5 = twoVal.times(intVal)
|
||||
const val times6 = twoVal.times(longVal)
|
||||
const val times7 = twoVal.times(floatVal)
|
||||
const val times8 = twoVal.times(doubleVal)
|
||||
|
||||
const val div1 = oneVal.div(twoVal)
|
||||
const val div2 = twoVal.div(twoVal)
|
||||
const val div3 = threeVal.div(twoVal)
|
||||
const val div4 = twoVal.div(byteVal)
|
||||
const val div5 = twoVal.div(intVal)
|
||||
const val div6 = twoVal.div(longVal)
|
||||
const val div7 = twoVal.div(floatVal)
|
||||
const val div8 = twoVal.div(doubleVal)
|
||||
|
||||
const val rem1 = oneVal.rem(twoVal)
|
||||
const val rem2 = twoVal.rem(twoVal)
|
||||
const val rem3 = threeVal.rem(twoVal)
|
||||
const val rem4 = twoVal.rem(byteVal)
|
||||
const val rem5 = twoVal.rem(intVal)
|
||||
const val rem6 = twoVal.rem(longVal)
|
||||
const val rem7 = twoVal.rem(floatVal)
|
||||
const val rem8 = twoVal.rem(doubleVal)
|
||||
|
||||
const val unaryPlus1 = oneVal.unaryPlus()
|
||||
const val unaryPlus2 = minusOneVal.unaryPlus()
|
||||
const val unaryMinus1 = oneVal.unaryMinus()
|
||||
const val unaryMinus2 = minusOneVal.unaryMinus()
|
||||
|
||||
const val convert1 = oneVal.toByte()
|
||||
const val convert2 = oneVal.toChar()
|
||||
const val convert3 = oneVal.toShort()
|
||||
const val convert4 = oneVal.toInt()
|
||||
const val convert5 = oneVal.toLong()
|
||||
const val convert6 = oneVal.toFloat()
|
||||
const val convert7 = oneVal.toDouble()
|
||||
|
||||
const val equals1 = oneVal.equals(twoVal)
|
||||
const val equals2 = twoVal.equals(twoVal)
|
||||
const val equals3 = threeVal.equals(twoVal)
|
||||
const val equals4 = fourVal.equals(twoVal)
|
||||
const val equals5 = oneVal.equals("1")
|
||||
|
||||
const val toString1 = oneVal.toString()
|
||||
const val toString2 = twoVal.toString()
|
||||
|
||||
fun box(): String {
|
||||
if (compareTo1 != -1) return "Fail 1.1"
|
||||
if (compareTo2 != 0) return "Fail 1.2"
|
||||
if (compareTo3 != 1) return "Fail 1.3"
|
||||
if (compareTo4 != 0) return "Fail 1.4"
|
||||
if (compareTo5 != 0) return "Fail 1.5"
|
||||
if (compareTo6 != 0) return "Fail 1.6"
|
||||
if (compareTo7 != 0) return "Fail 1.7"
|
||||
if (compareTo8 != 0) return "Fail 1.8"
|
||||
|
||||
if (plus1 != 3) return "Fail 2.1"
|
||||
if (plus2 != 4) return "Fail 2.2"
|
||||
if (plus3 != 5) return "Fail 2.3"
|
||||
if (plus4 != 4) return "Fail 2.4"
|
||||
if (plus5 != 4) return "Fail 2.5"
|
||||
if (plus6 != 4) return "Fail 2.6"
|
||||
if (plus7 != 4.0f) return "Fail 2.7"
|
||||
if (plus8 != 4.0) return "Fail 2.8"
|
||||
|
||||
if (minus1 != -1) return "Fail 3.1"
|
||||
if (minus2 != 0) return "Fail 3.2"
|
||||
if (minus3 != 1) return "Fail 3.3"
|
||||
if (minus4 != 0) return "Fail 3.4"
|
||||
if (minus5 != 0) return "Fail 3.5"
|
||||
if (minus6 != 0) return "Fail 3.6"
|
||||
if (minus7 != 0.0f) return "Fail 3.7"
|
||||
if (minus8 != 0.0) return "Fail 3.8"
|
||||
|
||||
if (times1 != 2) return "Fail 4.1"
|
||||
if (times2 != 4) return "Fail 4.2"
|
||||
if (times3 != 6) return "Fail 4.3"
|
||||
if (times4 != 4) return "Fail 4.4"
|
||||
if (times5 != 4) return "Fail 4.5"
|
||||
if (times6 != 4) return "Fail 4.6"
|
||||
if (times7 != 4.0f) return "Fail 4.7"
|
||||
if (times8 != 4.0) return "Fail 4.8"
|
||||
|
||||
if (div1 != 0) return "Fail 5.1"
|
||||
if (div2 != 1) return "Fail 5.2"
|
||||
if (div3 != 1) return "Fail 5.3"
|
||||
if (div4 != 1) return "Fail 5.4"
|
||||
if (div5 != 1) return "Fail 5.5"
|
||||
if (div6 != 1) return "Fail 5.6"
|
||||
if (div7 != 1.0f) return "Fail 5.7"
|
||||
if (div8 != 1.0) return "Fail 5.8"
|
||||
|
||||
if (rem1 != 1) return "Fail 6.1"
|
||||
if (rem2 != 0) return "Fail 6.2"
|
||||
if (rem3 != 1) return "Fail 6.3"
|
||||
if (rem4 != 0) return "Fail 6.4"
|
||||
if (rem5 != 0) return "Fail 6.5"
|
||||
if (rem6 != 0) return "Fail 6.6"
|
||||
if (rem7 != 0.0f) return "Fail 6.7"
|
||||
if (rem8 != 0.0) return "Fail 6.8"
|
||||
|
||||
if (unaryPlus1 != 1) return "Fail 7.1"
|
||||
if (unaryPlus2 != -1) return "Fail 7.2"
|
||||
if (unaryMinus1 != -1) return "Fail 7.3"
|
||||
if (unaryMinus2 != 1) return "Fail 7.4"
|
||||
|
||||
if (convert1 != 1) return "Fail 8.1"
|
||||
if (convert2 != '') return "Fail 8.2"
|
||||
if (convert3 != 1) return "Fail 8.3"
|
||||
if (convert4 != 1) return "Fail 8.4"
|
||||
if (convert5 != 1) return "Fail 8.5"
|
||||
if (convert6 != 1.0f) return "Fail 8.6"
|
||||
if (convert7 != 1.0) return "Fail 8.7"
|
||||
|
||||
if (equals1 != false) return "Fail 9.1"
|
||||
if (equals2 != true) return "Fail 9.2"
|
||||
if (equals3 != false) return "Fail 9.3"
|
||||
if (equals4 != false) return "Fail 9.4"
|
||||
if (equals5 != false) return "Fail 9.5"
|
||||
|
||||
if (toString1 != "1") return "Fail 10.1"
|
||||
if (toString2 != "2") return "Fail 10.2"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// WITH_STDLIB
|
||||
|
||||
const val code = '1'.code
|
||||
const val floorDiv = 10.floorDiv(2)
|
||||
const val mod = 5.mod(3)
|
||||
|
||||
fun box(): String {
|
||||
if (code != 49) return "Fail 1"
|
||||
if (floorDiv != 5) return "Fail 2"
|
||||
if (mod != 2) return "Fail 3"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
+51
@@ -0,0 +1,51 @@
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
|
||||
const val someStr = "123"
|
||||
const val otherStr = "other"
|
||||
|
||||
const val oneVal = 1
|
||||
|
||||
const val plus1 = someStr.plus(otherStr)
|
||||
const val plus2 = someStr.plus(oneVal)
|
||||
|
||||
const val length1 = someStr.length
|
||||
const val length2 = otherStr.length
|
||||
|
||||
const val get1 = someStr.get(0)
|
||||
const val get2 = otherStr.get(oneVal)
|
||||
|
||||
const val compareTo1 = someStr.compareTo("123")
|
||||
const val compareTo2 = someStr.compareTo(otherStr)
|
||||
const val compareTo3 = otherStr.compareTo(someStr)
|
||||
|
||||
const val equals1 = someStr.equals("123")
|
||||
const val equals2 = someStr.equals(otherStr)
|
||||
const val equals3 = otherStr.equals(someStr)
|
||||
const val equals4 = someStr.equals(oneVal)
|
||||
const val equals5 = someStr.equals(1)
|
||||
|
||||
const val toString1 = someStr.toString()
|
||||
|
||||
fun box(): String {
|
||||
if (plus1 != "123other") return "Fail 1.1"
|
||||
if (plus2 != "1231") return "Fail 1.2"
|
||||
|
||||
if (length1 != 3) return "Fail 2.1"
|
||||
if (length2 != 5) return "Fail 2.2"
|
||||
|
||||
if (get1 != '1') return "Fail 3.1"
|
||||
if (get2 != 't') return "Fail 3.2"
|
||||
|
||||
if (compareTo1 != 0) return "Fail 4.1"
|
||||
if (compareTo2 >= 0) return "Fail 4.2"
|
||||
if (compareTo3 <= 0) return "Fail 4.3"
|
||||
|
||||
if (equals1 != true) return "Fail 5.1"
|
||||
if (equals2 != false) return "Fail 5.2"
|
||||
if (equals3 != false) return "Fail 5.3"
|
||||
if (equals4 != false) return "Fail 5.4"
|
||||
if (equals5 != false) return "Fail 5.5"
|
||||
|
||||
if (toString1 != "123") return "Fail 6.1"
|
||||
return "OK"
|
||||
}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// WITH_STDLIB
|
||||
|
||||
const val byteVal: UByte = 1u
|
||||
const val shortVal: UShort = 2u
|
||||
const val intVal: UInt = 3u
|
||||
const val longVal: ULong = 4uL
|
||||
|
||||
fun box(): String {
|
||||
if (byteVal != 1u.toUByte()) return "Fail 1"
|
||||
if (shortVal != 2u.toUShort()) return "Fail 2"
|
||||
if (intVal != 3u.toUInt()) return "Fail 3"
|
||||
if (longVal != 4u.toULong()) return "Fail 4"
|
||||
return "OK"
|
||||
}
|
||||
Reference in New Issue
Block a user