Skip to content

Commit cb32444

Browse files
committed
Remove is_path_diagnostic_item
1 parent d32ef64 commit cb32444

18 files changed

+47
-48
lines changed

clippy_lints/src/casts/manual_dangling_ptr.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
use clippy_utils::diagnostics::span_lint_and_sugg;
2+
use clippy_utils::res::{MaybeDef, MaybeResPath};
23
use clippy_utils::source::SpanRangeExt;
3-
use clippy_utils::{expr_or_init, is_path_diagnostic_item, std_or_core, sym};
4+
use clippy_utils::{expr_or_init, std_or_core, sym};
45
use rustc_ast::LitKind;
56
use rustc_errors::Applicability;
67
use rustc_hir::{Expr, ExprKind, GenericArg, Mutability, QPath, Ty, TyKind};
@@ -53,7 +54,7 @@ fn is_expr_const_aligned(cx: &LateContext<'_>, expr: &Expr<'_>, to: &Ty<'_>) ->
5354

5455
fn is_align_of_call(cx: &LateContext<'_>, fun: &Expr<'_>, to: &Ty<'_>) -> bool {
5556
if let ExprKind::Path(QPath::Resolved(_, path)) = fun.kind
56-
&& is_path_diagnostic_item(cx, fun, sym::mem_align_of)
57+
&& fun.basic_res().is_diag_item(cx, sym::mem_align_of)
5758
&& let Some(args) = path.segments.last().and_then(|seg| seg.args)
5859
&& let [GenericArg::Type(generic_ty)] = args.args
5960
{

clippy_lints/src/manual_option_as_slice.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
use clippy_config::Conf;
22
use clippy_utils::diagnostics::{span_lint, span_lint_and_sugg};
33
use clippy_utils::msrvs::Msrv;
4+
use clippy_utils::res::{MaybeDef, MaybeQPath, MaybeResPath};
45
use clippy_utils::{is_none_pattern, msrvs, peel_hir_expr_refs, sym};
56
use rustc_errors::Applicability;
67
use rustc_hir::def::{DefKind, Res};
@@ -189,7 +190,7 @@ fn check_arms(cx: &LateContext<'_>, none_arm: &Arm<'_>, some_arm: &Arm<'_>) -> b
189190

190191
fn returns_empty_slice(cx: &LateContext<'_>, expr: &Expr<'_>) -> bool {
191192
match expr.kind {
192-
ExprKind::Path(_) => clippy_utils::is_path_diagnostic_item(cx, expr, sym::default_fn),
193+
ExprKind::Path(_) => expr.res(cx).is_diag_item(cx, sym::default_fn),
193194
ExprKind::Closure(cl) => is_empty_slice(cx, cx.tcx.hir_body(cl.body).value),
194195
_ => false,
195196
}
@@ -214,11 +215,11 @@ fn is_empty_slice(cx: &LateContext<'_>, expr: &Expr<'_>) -> bool {
214215
_ => false,
215216
},
216217
ExprKind::Array([]) => true,
217-
ExprKind::Call(def, []) => clippy_utils::is_path_diagnostic_item(cx, def, sym::default_fn),
218+
ExprKind::Call(def, []) => def.res(cx).is_diag_item(cx, sym::default_fn),
218219
_ => false,
219220
}
220221
}
221222

222223
fn is_slice_from_ref(cx: &LateContext<'_>, expr: &Expr<'_>) -> bool {
223-
clippy_utils::is_path_diagnostic_item(cx, expr, sym::slice_from_ref)
224+
expr.basic_res().is_diag_item(cx, sym::slice_from_ref)
224225
}

clippy_lints/src/methods/from_iter_instead_of_collect.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
use std::fmt::Write as _;
22

33
use clippy_utils::diagnostics::span_lint_and_sugg;
4+
use clippy_utils::res::{MaybeDef, MaybeQPath};
45
use clippy_utils::source::snippet_with_applicability;
6+
use clippy_utils::sugg;
57
use clippy_utils::ty::implements_trait;
6-
use clippy_utils::{is_path_diagnostic_item, sugg};
78
use rustc_ast::join_path_idents;
89
use rustc_errors::Applicability;
910
use rustc_hir::def::Res;
@@ -15,7 +16,7 @@ use rustc_span::sym;
1516
use super::FROM_ITER_INSTEAD_OF_COLLECT;
1617

1718
pub(super) fn check(cx: &LateContext<'_>, expr: &Expr<'_>, args: &[Expr<'_>], func: &Expr<'_>) {
18-
if is_path_diagnostic_item(cx, func, sym::from_iter_fn)
19+
if func.res(cx).is_diag_item(cx, sym::from_iter_fn)
1920
&& let arg_ty = cx.typeck_results().expr_ty(&args[0])
2021
&& let Some(iter_id) = cx.tcx.get_diagnostic_item(sym::Iterator)
2122
&& implements_trait(cx, arg_ty, iter_id, &[])

clippy_lints/src/methods/io_other_error.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
use clippy_utils::diagnostics::span_lint_and_then;
22
use clippy_utils::msrvs::{self, Msrv};
3-
use clippy_utils::{expr_or_init, is_path_diagnostic_item, sym};
3+
use clippy_utils::res::{MaybeDef, MaybeQPath};
4+
use clippy_utils::{expr_or_init, sym};
45
use rustc_errors::Applicability;
56
use rustc_hir::{Expr, ExprKind, QPath};
67
use rustc_lint::LateContext;
@@ -10,7 +11,7 @@ pub(super) fn check(cx: &LateContext<'_>, expr: &Expr<'_>, path: &Expr<'_>, args
1011
&& !expr.span.from_expansion()
1112
&& !error_kind.span.from_expansion()
1213
&& let ExprKind::Path(QPath::TypeRelative(_, new_segment)) = path.kind
13-
&& is_path_diagnostic_item(cx, path, sym::io_error_new)
14+
&& path.ty_rel_def(cx).is_diag_item(cx, sym::io_error_new)
1415
&& let ExprKind::Path(QPath::Resolved(_, init_path)) = &expr_or_init(cx, error_kind).kind
1516
&& let [.., error_kind_ty, error_kind_variant] = init_path.segments
1617
&& cx.tcx.is_diagnostic_item(sym::io_errorkind, error_kind_ty.res.def_id())

clippy_lints/src/methods/manual_str_repeat.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use clippy_utils::diagnostics::span_lint_and_sugg;
2-
use clippy_utils::is_path_diagnostic_item;
2+
use clippy_utils::res::{MaybeDef, MaybeResPath};
33
use clippy_utils::source::{snippet_with_applicability, snippet_with_context};
44
use clippy_utils::sugg::Sugg;
55
use clippy_utils::ty::{is_type_diagnostic_item, is_type_lang_item};
@@ -55,7 +55,7 @@ pub(super) fn check(
5555
take_arg: &Expr<'_>,
5656
) {
5757
if let ExprKind::Call(repeat_fn, [repeat_arg]) = take_self_arg.kind
58-
&& is_path_diagnostic_item(cx, repeat_fn, sym::iter_repeat)
58+
&& repeat_fn.basic_res().is_diag_item(cx, sym::iter_repeat)
5959
&& is_type_lang_item(cx, cx.typeck_results().expr_ty(collect_expr), LangItem::String)
6060
&& let Some(take_id) = cx.typeck_results().type_dependent_def_id(take_expr.hir_id)
6161
&& let Some(iter_trait_id) = cx.tcx.get_diagnostic_item(sym::Iterator)

clippy_lints/src/methods/needless_character_iteration.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
use clippy_utils::res::{MaybeDef, MaybeQPath};
12
use rustc_errors::Applicability;
23
use rustc_hir::{Closure, Expr, ExprKind, HirId, StmtKind, UnOp};
34
use rustc_lint::LateContext;
@@ -8,7 +9,7 @@ use super::NEEDLESS_CHARACTER_ITERATION;
89
use super::utils::get_last_chain_binding_hir_id;
910
use clippy_utils::diagnostics::span_lint_and_sugg;
1011
use clippy_utils::source::SpanRangeExt;
11-
use clippy_utils::{is_path_diagnostic_item, path_to_local_id, peel_blocks, sym};
12+
use clippy_utils::{path_to_local_id, peel_blocks, sym};
1213

1314
fn peels_expr_ref<'a, 'tcx>(mut expr: &'a Expr<'tcx>) -> &'a Expr<'tcx> {
1415
while let ExprKind::AddrOf(_, _, e) = expr.kind {
@@ -75,7 +76,7 @@ fn handle_expr(
7576
// If we have `!is_ascii`, then only `.any()` should warn. And if the condition is
7677
// `is_ascii`, then only `.all()` should warn.
7778
if revert != is_all
78-
&& is_path_diagnostic_item(cx, fn_path, sym::char_is_ascii)
79+
&& fn_path.ty_rel_def(cx).is_diag_item(cx, sym::char_is_ascii)
7980
&& path_to_local_id(peels_expr_ref(arg), first_param)
8081
&& let Some(snippet) = before_chars.get_source_text(cx)
8182
{

clippy_lints/src/methods/uninit_assumed_init.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use clippy_utils::diagnostics::span_lint;
2-
use clippy_utils::is_path_diagnostic_item;
2+
use clippy_utils::res::{MaybeDef, MaybeQPath};
33
use clippy_utils::ty::is_uninit_value_valid_for_ty;
44
use rustc_hir as hir;
55
use rustc_lint::LateContext;
@@ -10,7 +10,7 @@ use super::UNINIT_ASSUMED_INIT;
1010
/// lint for `MaybeUninit::uninit().assume_init()` (we already have the latter)
1111
pub(super) fn check(cx: &LateContext<'_>, expr: &hir::Expr<'_>, recv: &hir::Expr<'_>) {
1212
if let hir::ExprKind::Call(callee, []) = recv.kind
13-
&& is_path_diagnostic_item(cx, callee, sym::maybe_uninit_uninit)
13+
&& callee.ty_rel_def(cx).is_diag_item(cx, sym::maybe_uninit_uninit)
1414
&& !is_uninit_value_valid_for_ty(cx, cx.typeck_results().expr_ty_adjusted(expr))
1515
{
1616
span_lint(

clippy_lints/src/slow_vector_initialization.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
use clippy_utils::diagnostics::span_lint_and_sugg;
22
use clippy_utils::macros::matching_root_macro_call;
3+
use clippy_utils::res::{MaybeDef, MaybeQPath, MaybeResPath};
34
use clippy_utils::sugg::Sugg;
45
use clippy_utils::{
5-
SpanlessEq, get_enclosing_block, is_integer_literal, is_path_diagnostic_item, path_to_local, path_to_local_id,
6-
span_contains_comment, sym,
6+
SpanlessEq, get_enclosing_block, is_integer_literal, path_to_local, path_to_local_id, span_contains_comment, sym,
77
};
88
use rustc_errors::Applicability;
99
use rustc_hir::intravisit::{Visitor, walk_block, walk_expr, walk_stmt};
@@ -149,10 +149,10 @@ impl SlowVectorInit {
149149
}
150150

151151
if let ExprKind::Call(func, [len_expr]) = expr.kind
152-
&& is_path_diagnostic_item(cx, func, sym::vec_with_capacity)
152+
&& func.ty_rel_def(cx).is_diag_item(cx, sym::vec_with_capacity)
153153
{
154154
Some(InitializedSize::Initialized(len_expr))
155-
} else if matches!(expr.kind, ExprKind::Call(func, []) if is_path_diagnostic_item(cx, func, sym::vec_new)) {
155+
} else if matches!(expr.kind, ExprKind::Call(func, []) if func.ty_rel_def(cx).is_diag_item(cx, sym::vec_new)) {
156156
Some(InitializedSize::Uninitialized)
157157
} else {
158158
None
@@ -301,7 +301,7 @@ impl<'tcx> VectorInitializationVisitor<'_, 'tcx> {
301301
/// Returns `true` if given expression is `repeat(0)`
302302
fn is_repeat_zero(&self, expr: &Expr<'_>) -> bool {
303303
if let ExprKind::Call(fn_expr, [repeat_arg]) = expr.kind
304-
&& is_path_diagnostic_item(self.cx, fn_expr, sym::iter_repeat)
304+
&& fn_expr.basic_res().is_diag_item(self.cx, sym::iter_repeat)
305305
&& is_integer_literal(repeat_arg, 0)
306306
{
307307
true

clippy_lints/src/time_subtraction.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
use clippy_config::Conf;
22
use clippy_utils::diagnostics::{span_lint, span_lint_and_sugg};
33
use clippy_utils::msrvs::{self, Msrv};
4+
use clippy_utils::res::{MaybeDef, MaybeTypeckRes};
45
use clippy_utils::sugg::Sugg;
5-
use clippy_utils::{is_path_diagnostic_item, ty};
6+
use clippy_utils::ty;
67
use rustc_errors::Applicability;
78
use rustc_hir::{BinOpKind, Expr, ExprKind};
89
use rustc_lint::{LateContext, LateLintPass};
@@ -146,7 +147,7 @@ impl LateLintPass<'_> for UncheckedTimeSubtraction {
146147

147148
fn is_instant_now_call(cx: &LateContext<'_>, expr_block: &'_ Expr<'_>) -> bool {
148149
if let ExprKind::Call(fn_expr, []) = expr_block.kind
149-
&& is_path_diagnostic_item(cx, fn_expr, sym::instant_now)
150+
&& cx.ty_based_def(fn_expr).is_diag_item(cx, sym::instant_now)
150151
{
151152
true
152153
} else {

clippy_lints/src/to_digit_is_some.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
use clippy_config::Conf;
22
use clippy_utils::diagnostics::span_lint_and_sugg;
33
use clippy_utils::msrvs::{self, Msrv};
4+
use clippy_utils::res::{MaybeDef, MaybeQPath};
45
use clippy_utils::source::snippet_with_applicability;
5-
use clippy_utils::{is_in_const_context, is_path_diagnostic_item, sym};
6+
use clippy_utils::{is_in_const_context, sym};
67
use rustc_errors::Applicability;
78
use rustc_hir as hir;
89
use rustc_lint::{LateContext, LateLintPass};
@@ -62,7 +63,7 @@ impl<'tcx> LateLintPass<'tcx> for ToDigitIsSome {
6263
}
6364
},
6465
hir::ExprKind::Call(to_digits_call, [char_arg, radix_arg]) => {
65-
if is_path_diagnostic_item(cx, to_digits_call, sym::char_to_digit) {
66+
if to_digits_call.ty_rel_def(cx).is_diag_item(cx, sym::char_to_digit) {
6667
Some((false, char_arg, radix_arg))
6768
} else {
6869
None

0 commit comments

Comments
 (0)