| // FILE: lib.kt | |
| package foo | |
| // CHECK_NOT_CALLED: testBreak | |
| // CHECK_NOT_CALLED: testContinue | |
| // CHECK_LABELS_COUNT: function=testBreakNoinline name=loop count=1 | |
| // CHECK_LABELS_COUNT: function=testContinueNoinline name=loop count=1 | |
| inline fun testBreak(): Int { | |
| var i = 0 | |
| loop@ for (j in 1..10) { | |
| if (j == 5) break@loop | |
| i = j | |
| } | |
| return i | |
| } | |
| inline fun testContinue(): Int { | |
| var sum = 0 | |
| loop@ for (j in 1..5) { | |
| if (j % 2 != 0) continue@loop | |
| sum += j | |
| } | |
| return sum | |
| } | |
| // FILE: main.kt | |
| package foo | |
| import kotlin.test.* | |
| // CHECK_NOT_CALLED: testBreak | |
| // CHECK_NOT_CALLED: testContinue | |
| // CHECK_LABELS_COUNT: function=testBreakNoinline name=loop count=1 | |
| // CHECK_LABELS_COUNT: function=testContinueNoinline name=loop count=1 | |
| fun testBreakNoinline() { | |
| assertEquals(4, testBreak(), "break") | |
| } | |
| fun testContinueNoinline() { | |
| assertEquals(6, testContinue(), "continue") | |
| } | |
| fun box(): String { | |
| testContinue() | |
| return "OK" | |
| } |