| // TARGET_BACKEND: JVM |
| // WITH_STDLIB |
| |
| import java.io.* |
| |
| fun box(): String { |
| var o = "" |
| var b = 1.toByte() |
| var d = 1.0 |
| var f = 1.0f |
| var i = 1 |
| var j = 1L |
| var s = 1.toShort() |
| var c = '1' |
| var z = true |
| |
| val lambda = @JvmSerializableLambda fun(): String { |
| o = "OK" |
| b++; d++; f++; i++; j++; s++; c++ |
| z = false |
| return "$o $b $d $f $i $j $s $c $z" |
| } |
| |
| val baos = ByteArrayOutputStream() |
| val oos = ObjectOutputStream(baos) |
| oos.writeObject(lambda) |
| oos.close() |
| |
| val bais = ByteArrayInputStream(baos.toByteArray()) |
| val ois = ObjectInputStream(bais) |
| val result = (ois.readObject() as () -> String)() |
| ois.close() |
| |
| return if (result == "OK 2 2.0 2.0 2 2 2 2 false") "OK" else "Fail: $result" |
| } |