Потому что это возврат из лямбды, которая заново запускается на каждую итерацию
+ к предыдущему ответу. почему не обычный while?
Вдобавок к комментам выше: 1. Есть кусок доки, который рассказывает про это поведение и как симулировать break: https://kotlinlang.org/docs/returns.html#return-at-labels 2. Вроде в вашем случае можно обойти проблему сказав return invoke(given(spec))
Обсуждают сегодня