diff --git a/clippy_lints/src/loops.rs b/clippy_lints/src/loops.rs index 5bb75f7c2b15..becb423b5f2e 100644 --- a/clippy_lints/src/loops.rs +++ b/clippy_lints/src/loops.rs @@ -466,6 +466,7 @@ fn contains_continue_decl(decl: &Decl, dest: &NodeId) -> bool { fn contains_continue_expr(expr: &Expr, dest: &NodeId) -> bool { match expr.node { + ExprRet(Some(ref e)) | ExprBox(ref e) | ExprUnary(_, ref e) | ExprCast(ref e, _) | diff --git a/clippy_tests/examples/never_loop.rs b/clippy_tests/examples/never_loop.rs index 981331a1d6bd..50b8d4994149 100644 --- a/clippy_tests/examples/never_loop.rs +++ b/clippy_tests/examples/never_loop.rs @@ -103,6 +103,15 @@ fn test10() { } } +fn test11 i32>(mut f: F) { + loop { + return match f() { + 1 => continue, + _ => (), + } + } +} + fn main() { test1(); test2(); @@ -114,5 +123,6 @@ fn main() { test8(); test9(); test10(); + test11(|| 0); }