diff options
| author | Ada Alakbarova <ada.alakbarova@proton.me> | 2025-08-23 13:57:35 +0200 |
|---|---|---|
| committer | Ada Alakbarova <ada.alakbarova@proton.me> | 2025-08-24 12:45:04 +0200 |
| commit | e185efe1315b897d21977e4dfbe4da5a63b569a2 (patch) | |
| tree | b9fac5436637e2844a27b14fba0f127a7ee04d83 | |
| parent | 852e552be4753043644294ed5cc71daec0f8eedd (diff) | |
| download | rust-e185efe1315b897d21977e4dfbe4da5a63b569a2.tar.gz rust-e185efe1315b897d21977e4dfbe4da5a63b569a2.zip | |
pattern-match on slices
Avoids needless bounds checks (which almost definitely get optimized away, but still). And saves some characters
| -rw-r--r-- | clippy_lints/src/unused_unit.rs | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/clippy_lints/src/unused_unit.rs b/clippy_lints/src/unused_unit.rs index 68d1bbe6b85..3652bb68dea 100644 --- a/clippy_lints/src/unused_unit.rs +++ b/clippy_lints/src/unused_unit.rs @@ -97,16 +97,13 @@ impl<'tcx> LateLintPass<'tcx> for UnusedUnit { } fn check_poly_trait_ref(&mut self, cx: &LateContext<'tcx>, poly: &'tcx PolyTraitRef<'tcx>) { - let segments = &poly.trait_ref.path.segments; - - if segments.len() == 1 - && matches!(segments[0].ident.name, sym::Fn | sym::FnMut | sym::FnOnce) - && let Some(args) = segments[0].args + if let [segment] = &poly.trait_ref.path.segments + && matches!(segment.ident.name, sym::Fn | sym::FnMut | sym::FnOnce) + && let Some(args) = segment.args && args.parenthesized == GenericArgsParentheses::ParenSugar - && let constraints = &args.constraints - && constraints.len() == 1 - && constraints[0].ident.name == sym::Output - && let AssocItemConstraintKind::Equality { term: Term::Ty(hir_ty) } = constraints[0].kind + && let [constraint] = &args.constraints + && constraint.ident.name == sym::Output + && let AssocItemConstraintKind::Equality { term: Term::Ty(hir_ty) } = constraint.kind && args.span_ext.hi() != poly.span.hi() && !hir_ty.span.from_expansion() && args.span_ext.hi() != hir_ty.span.hi() |
