Loop Desugaring
for and while loops are desugared into a conditionless loop:
#![allow(unused)]
fn main() {
for $pat in $iter {
$loop_body
}
// becomes
{
let mut iter = IntoIterator::into_iter($iter);
while let Some($pat) = iter.next() {
$loop_body
}
}
}
And then:
#![allow(unused)]
fn main() {
while $condition {
$loop_body
}
// becomes
loop {
if $condition {
$loop_body
} else {
break;
}
}
}