[Clippy] Swap filter_map_bool_then
to use diagnostic item instead of path
This commit is contained in:
parent
b0152909d6
commit
45c1700e13
@ -1,9 +1,8 @@
|
|||||||
use super::FILTER_MAP_BOOL_THEN;
|
use super::FILTER_MAP_BOOL_THEN;
|
||||||
use clippy_utils::diagnostics::span_lint_and_sugg;
|
use clippy_utils::diagnostics::span_lint_and_sugg;
|
||||||
use clippy_utils::paths::BOOL_THEN;
|
|
||||||
use clippy_utils::source::SpanRangeExt;
|
use clippy_utils::source::SpanRangeExt;
|
||||||
use clippy_utils::ty::is_copy;
|
use clippy_utils::ty::is_copy;
|
||||||
use clippy_utils::{is_from_proc_macro, is_trait_method, match_def_path, peel_blocks};
|
use clippy_utils::{is_from_proc_macro, is_trait_method, peel_blocks};
|
||||||
use rustc_errors::Applicability;
|
use rustc_errors::Applicability;
|
||||||
use rustc_hir::{Expr, ExprKind};
|
use rustc_hir::{Expr, ExprKind};
|
||||||
use rustc_lint::{LateContext, LintContext};
|
use rustc_lint::{LateContext, LintContext};
|
||||||
@ -35,7 +34,7 @@ pub(super) fn check<'tcx>(cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>, arg: &
|
|||||||
&& let ExprKind::Closure(then_closure) = then_arg.kind
|
&& let ExprKind::Closure(then_closure) = then_arg.kind
|
||||||
&& let then_body = peel_blocks(cx.tcx.hir().body(then_closure.body).value)
|
&& let then_body = peel_blocks(cx.tcx.hir().body(then_closure.body).value)
|
||||||
&& let Some(def_id) = cx.typeck_results().type_dependent_def_id(value.hir_id)
|
&& let Some(def_id) = cx.typeck_results().type_dependent_def_id(value.hir_id)
|
||||||
&& match_def_path(cx, def_id, &BOOL_THEN)
|
&& cx.tcx.is_diagnostic_item(sym::bool_then, def_id)
|
||||||
&& !is_from_proc_macro(cx, expr)
|
&& !is_from_proc_macro(cx, expr)
|
||||||
// Count the number of derefs needed to get to the bool because we need those in the suggestion
|
// Count the number of derefs needed to get to the bool because we need those in the suggestion
|
||||||
&& let needed_derefs = cx.typeck_results().expr_adjustments(recv)
|
&& let needed_derefs = cx.typeck_results().expr_adjustments(recv)
|
||||||
|
@ -74,4 +74,3 @@
|
|||||||
pub const TOKIO_IO_OPEN_OPTIONS_NEW: [&str; 5] = ["tokio", "fs", "open_options", "OpenOptions", "new"];
|
pub const TOKIO_IO_OPEN_OPTIONS_NEW: [&str; 5] = ["tokio", "fs", "open_options", "OpenOptions", "new"];
|
||||||
pub const INSTANT_NOW: [&str; 4] = ["std", "time", "Instant", "now"];
|
pub const INSTANT_NOW: [&str; 4] = ["std", "time", "Instant", "now"];
|
||||||
pub const WAKER: [&str; 4] = ["core", "task", "wake", "Waker"];
|
pub const WAKER: [&str; 4] = ["core", "task", "wake", "Waker"];
|
||||||
pub const BOOL_THEN: [&str; 4] = ["core", "bool", "<impl bool>", "then"];
|
|
||||||
|
Loading…
Reference in New Issue
Block a user