Почему следующее компилируется в Kotlin:
fun foo(): Boolean {
while (true) {
return true
}
}
fun bar(): Boolean {
synchronized("") {
return foo()
}
}
в то время как следующие не ?
fun baz(): Boolean {
synchronized("") {
while (true) {
return true
}
}
}
И каков идиоматический способ заставить последнюю функцию компилироваться? Я могу переписать это следующим образом:
fun baz(): Boolean {
synchronized("") {
while (true) {
return true
}
TODO("Never")
}
}
- но это не выглядит достаточно элегантно.