Refactor JS translator to generate code for new inliner
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
// MODULE: lib
|
||||
// FILE: lib.kt
|
||||
|
||||
object O {
|
||||
fun bar() = "OK"
|
||||
}
|
||||
|
||||
inline fun foo() = O.bar()
|
||||
|
||||
// MODULE: main(lib)
|
||||
// FILE: main.kt
|
||||
// CHECK_CONTAINS_NO_CALLS: box except=bar
|
||||
|
||||
fun box() = foo()
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
// MODULE: lib
|
||||
// FILE: lib.kt
|
||||
fun baz(x: String) = "($x)"
|
||||
|
||||
inline fun foo(): String {
|
||||
return baz(bar { "OK" })
|
||||
}
|
||||
|
||||
inline fun bar(noinline x: () -> String): String {
|
||||
return "[" + baz(boo { x() }) + "]"
|
||||
}
|
||||
|
||||
fun boo(x: () -> String) = x()
|
||||
|
||||
// MODULE: main(lib)
|
||||
// FILE: main.kt
|
||||
fun box(): String {
|
||||
val result = foo()
|
||||
if (result != "([(OK)])") return "fail: $result"
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
// MODULE: lib1
|
||||
// FILE: lib1.kt
|
||||
package lib1
|
||||
|
||||
fun foo() = "lib1"
|
||||
|
||||
inline fun bar1() = foo()
|
||||
|
||||
// MODULE: lib2
|
||||
// FILE: lib2.kt
|
||||
package lib2
|
||||
|
||||
fun foo() = "lib2"
|
||||
|
||||
inline fun bar2() = foo()
|
||||
|
||||
// MODULE: main(lib1, lib2)
|
||||
// FILE: main.kt
|
||||
|
||||
import lib1.bar1
|
||||
import lib2.bar2
|
||||
|
||||
fun box(): String {
|
||||
val a = bar1()
|
||||
if (a != "lib1") return "fail1: $a"
|
||||
|
||||
val b = bar2()
|
||||
if (b != "lib2") return "fail2: $b"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
Reference in New Issue
Block a user