| // NO_CHECK_LAMBDA_INLINING |
| // FILE: 1.kt |
| |
| package test |
| |
| inline fun test(a: String, b: String, c: () -> String): String { |
| return a + b + c(); |
| } |
| |
| // FILE: 2.kt |
| |
| import test.* |
| |
| var res = "" |
| |
| fun String.id() = this |
| |
| val receiver: String |
| get() { |
| res += "L" |
| return "L" |
| } |
| |
| |
| fun box(): String { |
| res = "" |
| var call = test(b = { res += "K"; "K" }(), a = { res += "O"; "O" }(), c = receiver::id) |
| if (res != "KOL" || call != "OKL") return "fail 1: $res != KOL or $call != OKL" |
| |
| res = "" |
| call = test(b = { res += "K"; "K" }(), c = receiver::id, a = { res += "O"; "O" }()) |
| if (res != "KLO" || call != "OKL") return "fail 2: $res != KLO or $call != OKL" |
| |
| |
| res = "" |
| call = test(c = receiver::id, b = { res += "K"; "K" }(), a = { res += "O"; "O" }()) |
| if (res != "LKO" || call != "OKL") return "fail 3: $res != LKO or $call != OKL" |
| |
| return "OK" |
| } |