Skip to content

Commit 3ed7aa0

Browse files
committed
Remove path_def_id
1 parent 5b659ba commit 3ed7aa0

25 files changed

+91
-73
lines changed

clippy_lints/src/box_default.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
use clippy_utils::diagnostics::span_lint_and_sugg;
2+
use clippy_utils::is_default_equivalent;
23
use clippy_utils::macros::macro_backtrace;
4+
use clippy_utils::res::{MaybeDef, MaybeResPath};
35
use clippy_utils::ty::expr_sig;
4-
use clippy_utils::{is_default_equivalent, path_def_id};
56
use rustc_errors::Applicability;
67
use rustc_hir::def::Res;
78
use rustc_hir::intravisit::{InferKind, Visitor, VisitorExt, walk_ty};
8-
use rustc_hir::{AmbigArg, Block, Expr, ExprKind, HirId, LetStmt, Node, QPath, Ty, TyKind};
9+
use rustc_hir::{AmbigArg, Block, Expr, ExprKind, HirId, LangItem, LetStmt, Node, QPath, Ty, TyKind};
910
use rustc_lint::{LateContext, LateLintPass, LintContext};
1011
use rustc_session::declare_lint_pass;
1112
use rustc_span::{Span, sym};
@@ -44,7 +45,7 @@ impl LateLintPass<'_> for BoxDefault {
4445
// And that method is `new`
4546
&& seg.ident.name == sym::new
4647
// And the call is that of a `Box` method
47-
&& path_def_id(cx, ty).is_some_and(|id| Some(id) == cx.tcx.lang_items().owned_box())
48+
&& ty.basic_res().is_lang_item(cx, LangItem::OwnedBox)
4849
// And the single argument to the call is another function call
4950
// This is the `T::default()` (or default equivalent) of `Box::new(T::default())`
5051
&& let ExprKind::Call(arg_path, _) = arg.kind

clippy_lints/src/explicit_write.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
use clippy_utils::diagnostics::span_lint_and_sugg;
22
use clippy_utils::macros::{FormatArgsStorage, format_args_inputs_span};
3+
use clippy_utils::res::MaybeResPath;
34
use clippy_utils::source::snippet_with_applicability;
4-
use clippy_utils::{is_expn_of, path_def_id, sym};
5+
use clippy_utils::{is_expn_of, sym};
56
use rustc_errors::Applicability;
67
use rustc_hir::def::Res;
78
use rustc_hir::{BindingMode, Block, BlockCheckMode, Expr, ExprKind, Node, PatKind, QPath, Stmt, StmtKind};
@@ -59,7 +60,7 @@ impl<'tcx> LateLintPass<'tcx> for ExplicitWrite {
5960
&& let ExprKind::MethodCall(write_fun, write_recv, [write_arg], _) = *look_in_block(cx, &write_call.kind)
6061
&& let ExprKind::Call(write_recv_path, []) = write_recv.kind
6162
&& write_fun.ident.name == sym::write_fmt
62-
&& let Some(def_id) = path_def_id(cx, write_recv_path)
63+
&& let Some(def_id) = write_recv_path.basic_res().opt_def_id()
6364
{
6465
// match calls to std::io::stdout() / std::io::stderr ()
6566
let (dest_name, prefix) = match cx.tcx.get_diagnostic_name(def_id) {

clippy_lints/src/from_over_into.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use clippy_config::Conf;
44
use clippy_utils::diagnostics::span_lint_and_then;
55
use clippy_utils::macros::span_is_local;
66
use clippy_utils::msrvs::{self, Msrv};
7-
use clippy_utils::path_def_id;
7+
use clippy_utils::res::MaybeResPath;
88
use clippy_utils::source::SpanRangeExt;
99
use rustc_errors::Applicability;
1010
use rustc_hir::intravisit::{Visitor, walk_path};
@@ -90,7 +90,12 @@ impl<'tcx> LateLintPass<'tcx> for FromOverInto {
9090
|diag| {
9191
// If the target type is likely foreign mention the orphan rules as it's a common source of
9292
// confusion
93-
if path_def_id(cx, target_ty.peel_refs()).is_none_or(|id| !id.is_local()) {
93+
if target_ty
94+
.peel_refs()
95+
.basic_res()
96+
.opt_def_id()
97+
.is_none_or(|id| !id.is_local())
98+
{
9499
diag.help(
95100
"`impl From<Local> for Foreign` is allowed by the orphan rules, for more information see\n\
96101
https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence"

clippy_lints/src/from_raw_with_void_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_help;
2+
use clippy_utils::res::MaybeResPath;
3+
use clippy_utils::sym;
24
use clippy_utils::ty::is_c_void;
3-
use clippy_utils::{path_def_id, sym};
45
use rustc_hir::def_id::DefId;
56
use rustc_hir::{Expr, ExprKind, QPath};
67
use rustc_lint::{LateContext, LateLintPass};
@@ -41,7 +42,7 @@ impl LateLintPass<'_> for FromRawWithVoidPtr {
4142
if let ExprKind::Call(box_from_raw, [arg]) = expr.kind
4243
&& let ExprKind::Path(QPath::TypeRelative(ty, seg)) = box_from_raw.kind
4344
&& seg.ident.name == sym::from_raw
44-
&& let Some(type_str) = path_def_id(cx, ty).and_then(|id| def_id_matches_type(cx, id))
45+
&& let Some(type_str) = ty.basic_res().opt_def_id().and_then(|id| def_id_matches_type(cx, id))
4546
&& let arg_kind = cx.typeck_results().expr_ty(arg).kind()
4647
&& let ty::RawPtr(ty, _) = arg_kind
4748
&& is_c_void(cx, *ty)

clippy_lints/src/methods/chars_cmp.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::method_chain_args;
3+
use clippy_utils::res::MaybeQPath;
24
use clippy_utils::source::snippet_with_applicability;
3-
use clippy_utils::{method_chain_args, path_def_id};
45
use rustc_errors::Applicability;
56
use rustc_hir as hir;
67
use rustc_lint::{LateContext, Lint};
@@ -17,7 +18,7 @@ pub(super) fn check(
1718
) -> bool {
1819
if let Some(args) = method_chain_args(info.chain, chain_methods)
1920
&& let hir::ExprKind::Call(fun, [arg_char]) = info.other.kind
20-
&& let Some(id) = path_def_id(cx, fun).map(|ctor_id| cx.tcx.parent(ctor_id))
21+
&& let Some(id) = fun.res(cx).opt_def_id().map(|ctor_id| cx.tcx.parent(ctor_id))
2122
&& Some(id) == cx.tcx.lang_items().option_some_variant()
2223
{
2324
let mut applicability = Applicability::MachineApplicable;

clippy_lints/src/methods/option_map_or_none.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use clippy_utils::diagnostics::span_lint_and_sugg;
2+
use clippy_utils::is_res_lang_ctor;
23
use clippy_utils::res::{MaybeDef, MaybeQPath};
34
use clippy_utils::source::snippet;
4-
use clippy_utils::{is_res_lang_ctor, path_def_id};
55
use rustc_errors::Applicability;
66
use rustc_hir as hir;
77
use rustc_hir::LangItem::{OptionNone, OptionSome};
@@ -62,7 +62,7 @@ pub(super) fn check<'tcx>(
6262
&& let arg_snippet = snippet(cx, fn_decl_span, "..")
6363
&& let body = cx.tcx.hir_body(body)
6464
&& let Some((func, [arg_char])) = reduce_unit_expression(body.value)
65-
&& let Some(id) = path_def_id(cx, func).map(|ctor_id| cx.tcx.parent(ctor_id))
65+
&& let Some(id) = func.res(cx).opt_def_id().map(|ctor_id| cx.tcx.parent(ctor_id))
6666
&& Some(id) == cx.tcx.lang_items().option_some_variant()
6767
{
6868
let func_snippet = snippet(cx, arg_char.span, "..");

clippy_lints/src/non_std_lazy_statics.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@ use clippy_config::Conf;
22
use clippy_utils::diagnostics::{span_lint, span_lint_hir_and_then};
33
use clippy_utils::msrvs::{self, Msrv};
44
use clippy_utils::paths::{self, PathNS, find_crates, lookup_path_str};
5+
use clippy_utils::res::MaybeResPath;
56
use clippy_utils::visitors::for_each_expr;
6-
use clippy_utils::{fn_def_id, is_no_std_crate, path_def_id, sym};
7+
use clippy_utils::{fn_def_id, is_no_std_crate, sym};
78
use rustc_data_structures::fx::FxIndexMap;
89
use rustc_errors::Applicability;
910
use rustc_hir::def::{DefKind, Res};
@@ -188,7 +189,7 @@ impl LazyInfo {
188189
fn from_item(cx: &LateContext<'_>, item: &Item<'_>) -> Option<Self> {
189190
// Check if item is a `once_cell:sync::Lazy` static.
190191
if let ItemKind::Static(_, _, ty, body_id) = item.kind
191-
&& let Some(path_def_id) = path_def_id(cx, ty)
192+
&& let Some(path_def_id) = ty.basic_res().opt_def_id()
192193
&& let hir::TyKind::Path(hir::QPath::Resolved(_, path)) = ty.kind
193194
&& paths::ONCE_CELL_SYNC_LAZY.matches(cx, path_def_id)
194195
{

clippy_lints/src/only_used_in_recursion.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
use clippy_utils::diagnostics::span_lint_and_then;
2-
use clippy_utils::{get_expr_use_or_unification_node, path_def_id, path_to_local, path_to_local_id};
2+
use clippy_utils::res::MaybeQPath;
3+
use clippy_utils::{get_expr_use_or_unification_node, path_to_local, path_to_local_id};
34
use core::cell::Cell;
45
use rustc_data_structures::fx::FxHashMap;
56
use rustc_errors::Applicability;
@@ -370,7 +371,7 @@ impl<'tcx> LateLintPass<'tcx> for OnlyUsedInRecursion {
370371
Some((Node::Expr(parent), child_id)) => match parent.kind {
371372
// Recursive call. Track which index the parameter is used in.
372373
ExprKind::Call(callee, args)
373-
if path_def_id(cx, callee).is_some_and(|id| {
374+
if callee.res(cx).opt_def_id().is_some_and(|id| {
374375
id == param.fn_id && has_matching_args(param.fn_kind, typeck.node_args(callee.hir_id))
375376
}) =>
376377
{

clippy_lints/src/operators/cmp_owned.rs

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use clippy_utils::diagnostics::span_lint_and_then;
2-
use clippy_utils::path_def_id;
2+
use clippy_utils::res::MaybeQPath;
33
use clippy_utils::source::snippet;
44
use clippy_utils::ty::{implements_trait, is_copy};
55
use rustc_errors::Applicability;
@@ -47,11 +47,14 @@ fn check_op(cx: &LateContext<'_>, expr: &Expr<'_>, other: &Expr<'_>, left: bool)
4747
(arg, arg.span)
4848
},
4949
ExprKind::Call(path, [arg])
50-
if path_def_id(cx, path).is_some_and(|did| match cx.tcx.get_diagnostic_name(did) {
51-
Some(sym::from_str_method) => true,
52-
Some(sym::from_fn) => !is_copy(cx, typeck.expr_ty(expr)),
53-
_ => false,
54-
}) =>
50+
if path
51+
.res(cx)
52+
.opt_def_id()
53+
.is_some_and(|did| match cx.tcx.get_diagnostic_name(did) {
54+
Some(sym::from_str_method) => true,
55+
Some(sym::from_fn) => !is_copy(cx, typeck.expr_ty(expr)),
56+
_ => false,
57+
}) =>
5558
{
5659
(arg, arg.span)
5760
},

clippy_lints/src/ptr.rs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
use clippy_utils::diagnostics::{span_lint_and_sugg, span_lint_and_then, span_lint_hir_and_then};
2+
use clippy_utils::res::{MaybeDef, MaybeResPath};
23
use clippy_utils::source::SpanRangeExt;
34
use clippy_utils::sugg::Sugg;
45
use clippy_utils::visitors::contains_unsafe_block;
5-
use clippy_utils::{get_expr_use_or_unification_node, is_lint_allowed, path_def_id, path_to_local, std_or_core, sym};
6+
use clippy_utils::{get_expr_use_or_unification_node, is_lint_allowed, path_to_local, std_or_core, sym};
67
use hir::LifetimeKind;
78
use rustc_abi::ExternAbi;
89
use rustc_errors::{Applicability, MultiSpan};
@@ -742,8 +743,10 @@ fn get_lifetimes<'tcx>(ty: &'tcx hir::Ty<'tcx>) -> Vec<(&'tcx Lifetime, Option<M
742743

743744
fn is_null_path(cx: &LateContext<'_>, expr: &Expr<'_>) -> bool {
744745
if let ExprKind::Call(pathexp, []) = expr.kind {
745-
path_def_id(cx, pathexp)
746-
.is_some_and(|id| matches!(cx.tcx.get_diagnostic_name(id), Some(sym::ptr_null | sym::ptr_null_mut)))
746+
matches!(
747+
pathexp.basic_res().opt_diag_name(cx),
748+
Some(sym::ptr_null | sym::ptr_null_mut)
749+
)
747750
} else {
748751
false
749752
}

0 commit comments

Comments
 (0)