| // FILE: lib.kt |
| package foo |
| |
| |
| // CHECK_CONTAINS_NO_CALLS: test1 |
| // CHECK_CONTAINS_NO_CALLS: test2 |
| // CHECK_CONTAINS_NO_CALLS: test3 except=slice |
| |
| internal inline fun concat(vararg strings: String): String { |
| var result = "" |
| |
| for (string in strings) { |
| result += string |
| } |
| |
| return result |
| } |
| |
| // FILE: main.kt |
| package foo |
| import kotlin.test.* |
| |
| // CHECK_CONTAINS_NO_CALLS: test1 |
| // CHECK_CONTAINS_NO_CALLS: test2 |
| // CHECK_CONTAINS_NO_CALLS: test3 except=slice |
| |
| internal fun test1(): String { |
| return concat() |
| } |
| |
| internal fun test2(): String { |
| return concat("a", "b", "c") |
| } |
| |
| internal fun test3(list: Array<String>): String { |
| return concat(*list) |
| } |
| |
| // CHECK_BREAKS_COUNT: function=box count=0 |
| // CHECK_LABELS_COUNT: function=box name=$l$block count=0 |
| fun box(): String { |
| assertEquals("", test1()) |
| assertEquals("abc", test2()) |
| assertEquals("abcd", test3(arrayOf("a", "b", "c", "d"))) |
| |
| return "OK" |
| } |