Support bound callable reference inlining in IR
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
// FILE: 1.kt
|
||||
|
||||
package test
|
||||
|
||||
class Foo(val a: String) {
|
||||
|
||||
fun test() = a
|
||||
}
|
||||
|
||||
inline fun test(a: String, b: () -> String, c: () -> String, d: String): String {
|
||||
return a + b() + c() + d
|
||||
}
|
||||
|
||||
// FILE: 2.kt
|
||||
|
||||
import test.*
|
||||
|
||||
var effects = ""
|
||||
|
||||
fun create(a: String): Foo {
|
||||
effects += a
|
||||
return Foo(a)
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
val result = test(create("A").a, create("B")::a, create("C")::test, create("D").a)
|
||||
if (result != effects) return "fail 1: $effects != $result"
|
||||
|
||||
return if (result == "ABCD") "OK" else "fail 2: $result"
|
||||
}
|
||||
Reference in New Issue
Block a user