diff options
| author | Felix Kohlgrüber <felix.kohlgrueber@gmail.com> | 2018-12-06 11:07:10 +0100 |
|---|---|---|
| committer | Felix Kohlgrüber <felix.kohlgrueber@gmail.com> | 2018-12-06 11:07:10 +0100 |
| commit | a8a0b236b5768ab30a0439872368c1dc2e199860 (patch) | |
| tree | 6e7183665b3f8bf395031cd0052baa2160ce68b8 | |
| parent | f93591294d60f705fb70578cfc32346efe1e03d8 (diff) | |
| download | rust-a8a0b236b5768ab30a0439872368c1dc2e199860.tar.gz rust-a8a0b236b5768ab30a0439872368c1dc2e199860.zip | |
fix #3482 and add ui test for it
| -rw-r--r-- | clippy_lints/src/block_in_if_condition.rs | 2 | ||||
| -rw-r--r-- | tests/ui/block_in_if_condition.rs | 8 |
2 files changed, 9 insertions, 1 deletions
diff --git a/clippy_lints/src/block_in_if_condition.rs b/clippy_lints/src/block_in_if_condition.rs index 5597b856a8c..f90e7669dd0 100644 --- a/clippy_lints/src/block_in_if_condition.rs +++ b/clippy_lints/src/block_in_if_condition.rs @@ -70,7 +70,7 @@ impl<'a, 'tcx: 'a> Visitor<'tcx> for ExVisitor<'a, 'tcx> { if let ExprKind::Closure(_, _, eid, _, _) = expr.node { let body = self.cx.tcx.hir.body(eid); let ex = &body.value; - if matches!(ex.node, ExprKind::Block(_, _)) { + if matches!(ex.node, ExprKind::Block(_, _)) && !in_macro(body.value.span) { self.found_block = Some(ex); return; } diff --git a/tests/ui/block_in_if_condition.rs b/tests/ui/block_in_if_condition.rs index bb87315bcc4..94611811841 100644 --- a/tests/ui/block_in_if_condition.rs +++ b/tests/ui/block_in_if_condition.rs @@ -98,3 +98,11 @@ fn condition_is_unsafe_block() { fn main() { } + +fn macro_in_closure() { + let option = Some(true); + + if option.unwrap_or_else(|| unimplemented!()) { + unimplemented!() + } +} |
