Fix bug in implicit_return.

Bug was already covered by test, but test was not checked for.
This commit is contained in:
daxpedda
2018-12-06 12:22:54 +01:00
parent f93591294d
commit 973d676cd1
2 changed files with 13 additions and 1 deletions
+6
View File
@@ -90,6 +90,12 @@ fn expr_match(cx: &LateContext<'_, '_>, expr: &rustc::hir::Expr) {
if let Some(expr) = &block.expr {
Self::expr_match(cx, expr);
}
// only needed in the case of `break` with `;` at the end
else if let Some(stmt) = block.stmts.last() {
if let rustc::hir::StmtKind::Semi(expr, ..) = &stmt.node {
Self::expr_match(cx, expr);
}
}
},
// skip if it already has a return statement
ExprKind::Ret(..) => (),
+7 -1
View File
@@ -30,6 +30,12 @@ error: missing return statement
38 | true
| ^^^^ help: add `return` as shown: `return true`
error: missing return statement
--> $DIR/implicit_return.rs:46:9
|
46 | break true;
| ^^^^^^^^^^ help: change `break` to `return` as shown: `return true`
error: missing return statement
--> $DIR/implicit_return.rs:52:9
|
@@ -42,5 +48,5 @@ error: missing return statement
54 | let _ = || true;
| ^^^^ help: add `return` as shown: `return true`
error: aborting due to 7 previous errors
error: aborting due to 8 previous errors