| // MODULE: lib | |
| // FILE: lib.kt | |
| package utils | |
| inline public fun <T> composition(x0: T, x1: T, x2: T, fn: (T, T) -> T): T = fn(fn(x0, x1), x2) | |
| // MODULE: main(lib) | |
| // FILE: main.kt | |
| import utils.* | |
| public fun nonInlinableConcat(x: String, y: String): String = "$x$y" | |
| inline fun appendTo(target: String, suffix: String): String = nonInlinableConcat(target, suffix) | |
| // CHECK_CONTAINS_NO_CALLS: mytest except=nonInlinableConcat | |
| internal fun mytest(x: String): String = composition("", "O", "K", ::appendTo) | |
| fun box(): String { | |
| return mytest("O") | |
| } |