Lyricdev
GitHub

LYR-SEM0219

'while (true)' where 'loop' is meant

warning · spec 07-statements · lint loop-instead-of-while-true, group style, allow unless said

A while loop's condition is the literal true. Not said unless the lint is set to warn.

Explanation

loop { … } is the loop that ends only by break, return or throw; it says so at its first word, and a break out of it can give a value. The lint is allow by default.

Write loop { … }.

Wrong

@Warn("loop-instead-of-while-true")
fn main(): void {
    var n = 0;
    while (true) {
        n = n + 1;
        if (n > 2) {
            break;
        }
    }
}
@Warn("loop-instead-of-while-true")
fn main(): void {
    var n = 0;
    loop {
        n = n + 1;
        if (n > 2) {
            break;
        }
    }
}