parent
58e6431f1a
commit
7c98915da9
|
@ -727,8 +727,7 @@ fn never_loop_expr(expr: &Expr, main_loop_id: HirId) -> NeverLoopResult {
|
||||||
NeverLoopResult::AlwaysBreak
|
NeverLoopResult::AlwaysBreak
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
ExprKind::Break(_, _) => NeverLoopResult::AlwaysBreak,
|
ExprKind::Break(_, ref e) | ExprKind::Ret(ref e) => {
|
||||||
ExprKind::Ret(ref e) => {
|
|
||||||
if let Some(ref e) = *e {
|
if let Some(ref e) = *e {
|
||||||
combine_seq(never_loop_expr(e, main_loop_id), NeverLoopResult::AlwaysBreak)
|
combine_seq(never_loop_expr(e, main_loop_id), NeverLoopResult::AlwaysBreak)
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -175,6 +175,17 @@ pub fn test15() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Issue #4058: `continue` in `break` expression
|
||||||
|
pub fn test16() {
|
||||||
|
let mut n = 1;
|
||||||
|
loop {
|
||||||
|
break if n != 5 {
|
||||||
|
n += 1;
|
||||||
|
continue;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
test1();
|
test1();
|
||||||
test2();
|
test2();
|
||||||
|
|
Loading…
Reference in a new issue