This is initial implementation of serializer/deserializer for inline IR bodies.

The deserialization is disabled by default.

Use `-enable deserializer` to enable it.
Use `-verbose deserializer` to watch it crunch.
This commit is contained in:
Alexander Gorshenev
2017-01-10 15:13:40 +03:00
committed by alexander-gorshenev
parent 4a4225fd72
commit ff8acd21e6
30 changed files with 3180 additions and 70 deletions
@@ -0,0 +1,37 @@
fun inline_todo() {
try {
TODO("OK")
} catch (e: Throwable) {
println(e.message)
}
}
fun inline_maxof() {
println(maxOf(10, 17))
println(maxOf(17, 13))
println(maxOf(17, 17))
}
fun inline_assert() {
//assert(true)
}
fun inline_areEqual() {
val a = 17
val b = "some string"
println(konan.internal.areEqual(a, 17))
println(konan.internal.areEqual(a, a))
println(konan.internal.areEqual(17, 17))
println(konan.internal.areEqual(b, "some string"))
println(konan.internal.areEqual("some string", b))
println(konan.internal.areEqual(b, b))
}
fun main(args: Array<String>) {
inline_todo()
inline_assert()
inline_maxof()
inline_areEqual()
}
@@ -0,0 +1,29 @@
fun test_arrayList() {
val l = listOf(1, 2, 3)
val m = listOf<Int>()
val n = l + m
println(n)
}
fun <T> test_arrayList2(x: T, y: T, z: T) {
val l = listOf<T>(x, y, z)
val m = listOf<T>()
val n = m + l
println(l)
}
fun test_arrayList3() {
val l = listOf<String>()
val m = listOf<String>("a", "b", "c")
val n = l + m
println(n)
}
fun main(args: Array<String>) {
test_arrayList()
test_arrayList2<Int>(5, 6, 7)
test_arrayList2<String>("a", "b", "c")
test_arrayList3()
}