blob: 79bdd3814b70ac0cad35f50cdf3e73c1083f24c5 [file]
use clippy_utils::diagnostics::span_lint_and_sugg;
use rustc_ast::ast::{Pat, PatKind};
use rustc_errors::Applicability;
use rustc_lint::{EarlyContext, LintContext as _};
use super::REDUNDANT_PATTERN;
pub(super) fn check(cx: &EarlyContext<'_>, pat: &Pat) {
if let PatKind::Ident(ann, ident, Some(ref right)) = pat.kind
&& let PatKind::Wild = right.kind
&& !pat.span.in_external_macro(cx.sess().source_map())
{
span_lint_and_sugg(
cx,
REDUNDANT_PATTERN,
pat.span,
format!(
"the `{} @ _` pattern can be written as just `{}`",
ident.name, ident.name,
),
"try",
format!("{}{}", ann.prefix_str(), ident.name),
Applicability::MachineApplicable,
);
}
}