Move ir box test under "box/ir"

This commit is contained in:
Mikhael Bogdanov
2018-08-02 09:36:31 +02:00
parent 24579c27a2
commit cb53e86183
25 changed files with 605 additions and 4 deletions
@@ -0,0 +1,6 @@
fun foo(x: String): String {
fun bar(y: String) = x + y
return bar("K")
}
fun box() = foo("O")
@@ -0,0 +1,8 @@
fun <X : Any> foo(x: X): String {
fun <Y : Any> bar(y: Y) =
x.toString() + y.toString()
return bar("K")
}
fun box() = foo("O")
@@ -0,0 +1,11 @@
fun foo(x: String): String {
fun bar(y: String): String {
fun qux(z: String): String =
x + y + z
return qux("")
}
return bar("K")
}
fun box(): String =
foo("O")
@@ -0,0 +1,6 @@
fun String.foo(): String {
fun bar(y: String) = this + y
return bar("K")
}
fun box() = "O".foo()
@@ -0,0 +1,8 @@
class Outer {
val x = "O"
inner class Inner {
val y = x + "K"
}
}
fun box() = Outer().Inner().y
@@ -0,0 +1,7 @@
class Outer(val x: String) {
inner class Inner(val y: String) {
val z = x + y
}
}
fun box() = Outer("O").Inner("K").z
@@ -0,0 +1,9 @@
fun box(): String {
var result = ""
fun add(s: String) {
result += s
}
add("O")
add("K")
return result
}
@@ -0,0 +1,85 @@
fun testBoolean(v: Boolean): Boolean {
var value = false
fun setValue(v: Boolean) {
value = v
}
setValue(v)
return value
}
fun testChar(v: Char): Char {
var value = 0.toChar()
fun setValue(v: Char) {
value = v
}
setValue(v)
return value
}
fun testByte(v: Byte): Byte {
var value = 0.toByte()
fun setValue(v: Byte) {
value = v
}
setValue(v)
return value
}
fun testShort(v: Short): Short {
var value = 0.toShort()
fun setValue(v: Short) {
value = v
}
setValue(v)
return value
}
fun testInt(v: Int): Int {
var value = 0.toInt()
fun setValue(v: Int) {
value = v
}
setValue(v)
return value
}
fun testLong(v: Long): Long {
var value = 0.toLong()
fun setValue(v: Long) {
value = v
}
setValue(v)
return value
}
fun testFloat(v: Float): Float {
var value = 0.toFloat()
fun setValue(v: Float) {
value = v
}
setValue(v)
return value
}
fun testDouble(v: Double): Double {
var value = 0.toDouble()
fun setValue(v: Double) {
value = v
}
setValue(v)
return value
}
fun box(): String {
return when {
testBoolean(true) != true -> "testBoolean"
testChar('a') != 'a' -> "testChar"
testByte(1) != 1.toByte() -> "testByte"
testShort(1) != 1.toShort() -> "testShort"
testInt(1) != 1 -> "testInt"
testLong(1) != 1L -> "testLong"
testFloat(1.0F) != 1.0F -> "testFloat"
testDouble(1.0) != 1.0 -> "testDouble"
else -> "OK"
}
}