| // 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 |
| } |