]> git.lizzy.rs Git - rust.git/commitdiff
Don't trigger lint on break or return
authorZaki Manian <zaki@manian.org>
Sun, 3 Sep 2017 18:17:20 +0000 (11:17 -0700)
committerZaki Manian <zaki@manian.org>
Sun, 3 Sep 2017 18:17:20 +0000 (11:17 -0700)
clippy_lints/src/is_unit_expr.rs

index 9db045ccd9125675fa5a2928a4f6318be70a1525..c9bba0c532dd89052360b0b1d28f0e5eaff4e4b1 100644 (file)
@@ -106,9 +106,17 @@ fn is_unit_expr(expr: &Expr) -> Option<Span> {
 
 fn check_last_stmt_in_block(block: &Block) -> bool {
     let ref final_stmt = &block.stmts[block.stmts.len() - 1];
-    if let StmtKind::Expr(_) = final_stmt.node {
-        return false;
-    } else {
-        return true;
+    
+    match final_stmt.node{
+        StmtKind::Expr(_) => return false,
+        StmtKind::Semi(ref expr)=>{
+               match expr.node{
+                ExprKind::Break(_,_) => return false,
+                ExprKind::Ret(_) => return false,
+                _ => return true,
+            }         
+        },
+        _ => return true,
     }
+
 }