diff --git a/clippy_lints/src/copies.rs b/clippy_lints/src/copies.rs index 673744d90b8..9b64d1631bd 100644 --- a/clippy_lints/src/copies.rs +++ b/clippy_lints/src/copies.rs @@ -372,11 +372,13 @@ fn eq_stmts( } fn contains_acceptable_macro(cx: &LateContext<'_>, block: &Block<'_>) -> bool { - for stmt in block.stmts { - match stmt.kind { - StmtKind::Semi(semi_expr) if acceptable_macro(cx, semi_expr) => return true, - _ => {}, - } + if block.stmts.first().map_or(false, |stmt| + matches!( + stmt.kind, + StmtKind::Semi(semi_expr) if acceptable_macro(cx, semi_expr) + ) + ) { + return true; } if let Some(block_expr) = block.expr diff --git a/tests/ui/if_same_then_else.rs b/tests/ui/if_same_then_else.rs index 2598c2ab426..4110d1a9c01 100644 --- a/tests/ui/if_same_then_else.rs +++ b/tests/ui/if_same_then_else.rs @@ -179,38 +179,6 @@ mod issue_8836 { } else { unimplemented!(); } - - if true { - println!("FOO"); - todo!(); - } else { - println!("FOO"); - todo!(); - } - - if true { - println!("FOO"); - unimplemented!(); - } else { - println!("FOO"); - unimplemented!(); - } - - if true { - println!("FOO"); - todo!() - } else { - println!("FOO"); - todo!() - } - - if true { - println!("FOO"); - unimplemented!() - } else { - println!("FOO"); - unimplemented!() - } } }