21 lines
606 B
Rust
21 lines
606 B
Rust
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}`"),
|
|
);
|
|
}
|
|
}
|