]> git.lizzy.rs Git - rust.git/blob - src/tools/clippy/clippy_lints/src/misc_early/double_neg.rs
Add tests for `#[no_mangle]` in `impl` blocks that looks like generic `impl` blocks...
[rust.git] / src / tools / clippy / clippy_lints / src / misc_early / double_neg.rs
1 use super::MiscEarlyLints;
2 use clippy_utils::diagnostics::span_lint;
3 use rustc_ast::ast::{Expr, ExprKind, UnOp};
4 use rustc_lint::EarlyContext;
5
6 use super::DOUBLE_NEG;
7
8 pub(super) fn check(cx: &EarlyContext<'_>, expr: &Expr) {
9     match expr.kind {
10         ExprKind::Unary(UnOp::Neg, ref inner) => {
11             if let ExprKind::Unary(UnOp::Neg, _) = inner.kind {
12                 span_lint(
13                     cx,
14                     DOUBLE_NEG,
15                     expr.span,
16                     "`--x` could be misinterpreted as pre-decrement by C programmers, is usually a no-op",
17                 );
18             }
19         },
20         ExprKind::Lit(ref lit) => MiscEarlyLints::check_lit(cx, lit),
21         _ => (),
22     }
23 }