| use clippy_utils::diagnostics::span_lint; |
| use clippy_utils::eq_expr_value; |
| use clippy_utils::source::snippet; |
| use rustc_hir::Expr; |
| use rustc_lint::LateContext; |
| |
| use super::SELF_ASSIGNMENT; |
| |
| pub(super) fn check<'tcx>(cx: &LateContext<'tcx>, e: &'tcx Expr<'_>, lhs: &'tcx Expr<'_>, rhs: &'tcx Expr<'_>) { |
| if eq_expr_value(cx, lhs, rhs) { |
| let lhs = snippet(cx, lhs.span, "<lhs>"); |
| let rhs = snippet(cx, rhs.span, "<rhs>"); |
| span_lint( |
| cx, |
| SELF_ASSIGNMENT, |
| e.span, |
| format!("self-assignment of `{rhs}` to `{lhs}`"), |
| ); |
| } |
| } |