about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAda Alakbarova <ada.alakbarova@proton.me>2025-08-16 15:55:55 +0200
committerAda Alakbarova <ada.alakbarova@proton.me>2025-08-16 15:56:22 +0200
commit8418fb8eb1c1664f476f3a89f9f1d871bb53c2e7 (patch)
treeba011ba9d6521d9e35ff89d3246be5e4a549fbbd
parent42ddaa3a38efa6933db344e15ae4030f5cf869e4 (diff)
downloadrust-8418fb8eb1c1664f476f3a89f9f1d871bb53c2e7.tar.gz
rust-8418fb8eb1c1664f476f3a89f9f1d871bb53c2e7.zip
shorten `expr_block`
-rw-r--r--clippy_lints/src/collapsible_if.rs13
1 files changed, 4 insertions, 9 deletions
diff --git a/clippy_lints/src/collapsible_if.rs b/clippy_lints/src/collapsible_if.rs
index 12b43ddc697..ad610fbd8d2 100644
--- a/clippy_lints/src/collapsible_if.rs
+++ b/clippy_lints/src/collapsible_if.rs
@@ -5,7 +5,7 @@ use clippy_utils::source::{IntoSpan as _, SpanRangeExt, snippet, snippet_block_w
 use clippy_utils::{span_contains_non_whitespace, tokenize_with_text};
 use rustc_ast::BinOpKind;
 use rustc_errors::Applicability;
-use rustc_hir::{Block, Expr, ExprKind, Stmt, StmtKind};
+use rustc_hir::{Block, Expr, ExprKind, StmtKind};
 use rustc_lexer::TokenKind;
 use rustc_lint::{LateContext, LateLintPass};
 use rustc_session::impl_lint_pass;
@@ -257,14 +257,9 @@ fn block_starts_with_significant_tokens(
 /// If `block` is a block with either one expression or a statement containing an expression,
 /// return the expression. We don't peel blocks recursively, as extra blocks might be intentional.
 fn expr_block<'tcx>(block: &Block<'tcx>) -> Option<&'tcx Expr<'tcx>> {
-    match block.stmts {
-        [] => block.expr,
-        [
-            Stmt {
-                kind: StmtKind::Semi(expr),
-                ..
-            },
-        ] if block.expr.is_none() => Some(expr),
+    match (block.stmts, block.expr) {
+        ([], expr) => expr,
+        ([stmt], None) if let StmtKind::Semi(expr) = stmt.kind => Some(expr),
         _ => None,
     }
 }