1 use clippy_utils::diagnostics::span_lint_and_sugg;
2 use rustc_ast::ast::{BindingMode, Mutability, Pat, PatKind};
3 use rustc_errors::Applicability;
4 use rustc_lint::EarlyContext;
6 use super::REDUNDANT_PATTERN;
8 pub(super) fn check(cx: &EarlyContext<'_>, pat: &Pat) {
9 if let PatKind::Ident(left, ident, Some(ref right)) = pat.kind {
10 let left_binding = match left {
11 BindingMode::ByRef(Mutability::Mut) => "ref mut ",
12 BindingMode::ByRef(Mutability::Not) => "ref ",
13 BindingMode::ByValue(..) => "",
16 if let PatKind::Wild = right.kind {
22 "the `{} @ _` pattern can be written as just `{}`",
23 ident.name, ident.name,
26 format!("{}{}", left_binding, ident.name),
27 Applicability::MachineApplicable,