JS inliner: Don't treat 'bar' as unused in the presence of 'bar.call' expressions

This commit is contained in:
Anton Bannykh
2016-11-18 15:29:57 +03:00
parent b7b320e4ce
commit 68b35aa0ac
5 changed files with 97 additions and 9 deletions
@@ -5,6 +5,8 @@ inline fun calc(s: (Int) -> Int, noinline p: (Int) -> Int) : Int {
return s(11) + z(11) + p(11)
}
inline fun extensionLambda(noinline bar: Int.() -> Int) = 10.bar()
// FILE: 2.kt
//NO_CHECK_LAMBDA_INLINING
@@ -12,9 +14,13 @@ fun test1(): Int {
return calc( { l: Int -> 2*l}, { l: Int -> 4*l})
}
fun test2(): Int {
return extensionLambda({this * 16})
}
fun box(): String {
if (test1() != 110) return "test1: ${test1()}"
if (test2() != 160) return "test2: ${test2()}"
return "OK"
}