blob: 65c22587a0a7fb883a638033fad008fe781f00d2 [file]
// FILE: lib.kt
inline fun inlineFunction(x: Int) {}
// FILE: main.kt
var OK : Any? = null
val flag1 = 1
val flag2 = 2
fun check() = true
fun sep(comment: String) {}
fun setOK(): Int {
OK = "OK"
return 1
}
// EXPECT_GENERATED_JS: function=box expect=inlineEmptyFunctionTest.js
fun box(): String {
sep("Simple call")
inlineFunction(1)
inlineFunction(setOK())
sep("Call in if")
if (flag1 != 0) {
if (OK == "OK" && flag1 == 1 && flag2 is Int && check()) {
inlineFunction(2)
}
}
sep("Call in else")
if (flag1 != 0) {
if (OK == "OK" && flag1 == 1 && flag2 is Int && check()) {
check() // non inline call
check() // non inline call
} else {
inlineFunction(3)
}
}
sep("Call in while")
while (OK != "OK") {
inlineFunction(4)
}
sep("Call in when")
when (OK) {
is String -> inlineFunction(5)
is Number -> inlineFunction(6)
else -> inlineFunction(7)
}
sep("Call in try/catch/finally")
try {
inlineFunction(8)
} catch (e: Exception) {
inlineFunction(9)
} finally {
inlineFunction(10)
}
sep("End")
return OK as String
}