mirror of
https://github.com/rust-lang/rust-clippy
synced 2025-02-17 06:28:42 +00:00
Ignore macros with !
operators in eq_op
This commit is contained in:
parent
3e74853d1f
commit
a7d58edf27
2 changed files with 22 additions and 1 deletions
|
@ -1,4 +1,6 @@
|
||||||
use crate::utils::{implements_trait, is_copy, multispan_sugg, snippet, span_lint, span_lint_and_then, SpanlessEq};
|
use crate::utils::{
|
||||||
|
implements_trait, in_macro, is_copy, multispan_sugg, snippet, span_lint, span_lint_and_then, SpanlessEq,
|
||||||
|
};
|
||||||
use rustc_errors::Applicability;
|
use rustc_errors::Applicability;
|
||||||
use rustc_hir::*;
|
use rustc_hir::*;
|
||||||
use rustc_lint::{LateContext, LateLintPass};
|
use rustc_lint::{LateContext, LateLintPass};
|
||||||
|
@ -53,6 +55,16 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for EqOp {
|
||||||
if e.span.from_expansion() {
|
if e.span.from_expansion() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
let macro_with_not_op = |expr_kind: &ExprKind<'_>| {
|
||||||
|
if let ExprKind::Unary(_, ref expr) = *expr_kind {
|
||||||
|
in_macro(expr.span)
|
||||||
|
} else {
|
||||||
|
false
|
||||||
|
}
|
||||||
|
};
|
||||||
|
if macro_with_not_op(&left.kind) || macro_with_not_op(&right.kind) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
if is_valid_operator(op) && SpanlessEq::new(cx).ignore_fn().eq_expr(left, right) {
|
if is_valid_operator(op) && SpanlessEq::new(cx).ignore_fn().eq_expr(left, right) {
|
||||||
span_lint(
|
span_lint(
|
||||||
cx,
|
cx,
|
||||||
|
|
|
@ -73,6 +73,15 @@ macro_rules! check_if_named_foo {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
macro_rules! bool_macro {
|
||||||
|
($expression:expr) => {
|
||||||
|
true
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
#[allow(clippy::short_circuit_statement)]
|
||||||
fn check_ignore_macro() {
|
fn check_ignore_macro() {
|
||||||
check_if_named_foo!(foo);
|
check_if_named_foo!(foo);
|
||||||
|
// checks if the lint ignores macros with `!` operator
|
||||||
|
!bool_macro!(1) && !bool_macro!("");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue