Skip to content

Commit e69d88b

Browse files
committed
Remove is_trait_method
1 parent d0be335 commit e69d88b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+212
-166
lines changed

clippy_lints/src/cloned_ref_to_slice_refs.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
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, MaybeTypeckRes};
45
use clippy_utils::sugg::Sugg;
56
use clippy_utils::visitors::is_const_evaluatable;
6-
use clippy_utils::{is_in_const_context, is_mutable, is_trait_method};
7+
use clippy_utils::{is_in_const_context, is_mutable};
78
use rustc_errors::Applicability;
89
use rustc_hir::{Expr, ExprKind};
910
use rustc_lint::{LateContext, LateLintPass};
@@ -73,7 +74,7 @@ impl<'tcx> LateLintPass<'tcx> for ClonedRefToSliceRefs<'_> {
7374

7475
// check for clones
7576
&& let ExprKind::MethodCall(_, val, _, _) = item.kind
76-
&& is_trait_method(cx, item, sym::Clone)
77+
&& cx.ty_based_def(item).opt_parent(cx).is_diag_item(cx, sym::Clone)
7778

7879
// check for immutability or purity
7980
&& (!is_mutable(cx, val) || is_const_evaluatable(cx, val))

clippy_lints/src/len_zero.rs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
use clippy_utils::diagnostics::{span_lint, span_lint_and_sugg, span_lint_and_then};
2+
use clippy_utils::res::{MaybeDef, MaybeTypeckRes};
23
use clippy_utils::source::{SpanRangeExt, snippet_with_context};
34
use clippy_utils::sugg::{Sugg, has_enclosing_paren};
45
use clippy_utils::ty::implements_trait;
5-
use clippy_utils::{
6-
fulfill_or_allowed, get_parent_as_impl, is_trait_method, parent_item_name, peel_ref_operators, sym,
7-
};
6+
use clippy_utils::{fulfill_or_allowed, get_parent_as_impl, parent_item_name, peel_ref_operators, sym};
87
use rustc_ast::ast::LitKind;
98
use rustc_errors::Applicability;
109
use rustc_hir::def::Res;
@@ -204,7 +203,7 @@ impl<'tcx> LateLintPass<'tcx> for LenZero {
204203
}
205204

206205
if let ExprKind::MethodCall(method, lhs_expr, [rhs_expr], _) = expr.kind
207-
&& is_trait_method(cx, expr, sym::PartialEq)
206+
&& cx.ty_based_def(expr).opt_parent(cx).is_diag_item(cx, sym::PartialEq)
208207
&& !expr.span.from_expansion()
209208
{
210209
check_empty_expr(

clippy_lints/src/lines_filter_map_ok.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
use clippy_config::Conf;
22
use clippy_utils::diagnostics::span_lint_and_then;
33
use clippy_utils::msrvs::{self, Msrv};
4-
use clippy_utils::res::{MaybeDef, MaybeResPath};
5-
use clippy_utils::{is_trait_method, sym};
4+
use clippy_utils::res::{MaybeDef, MaybeResPath, MaybeTypeckRes};
5+
use clippy_utils::sym;
66
use rustc_errors::Applicability;
77
use rustc_hir::{Body, Closure, Expr, ExprKind};
88
use rustc_lint::{LateContext, LateLintPass};
@@ -73,7 +73,7 @@ impl_lint_pass!(LinesFilterMapOk => [LINES_FILTER_MAP_OK]);
7373
impl LateLintPass<'_> for LinesFilterMapOk {
7474
fn check_expr(&mut self, cx: &LateContext<'_>, expr: &Expr<'_>) {
7575
if let ExprKind::MethodCall(fm_method, fm_receiver, fm_args, fm_span) = expr.kind
76-
&& is_trait_method(cx, expr, sym::Iterator)
76+
&& cx.ty_based_def(expr).opt_parent(cx).is_diag_item(cx, sym::Iterator)
7777
&& let fm_method_name = fm_method.ident.name
7878
&& matches!(fm_method_name, sym::filter_map | sym::flat_map | sym::flatten)
7979
&& cx

clippy_lints/src/loops/explicit_into_iter_loop.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use super::EXPLICIT_INTO_ITER_LOOP;
22
use clippy_utils::diagnostics::span_lint_and_sugg;
3-
use clippy_utils::is_trait_method;
3+
use clippy_utils::res::{MaybeDef, MaybeTypeckRes};
44
use clippy_utils::source::snippet_with_context;
55
use rustc_errors::Applicability;
66
use rustc_hir::Expr;
@@ -43,7 +43,11 @@ impl AdjustKind {
4343
}
4444

4545
pub(super) fn check(cx: &LateContext<'_>, self_arg: &Expr<'_>, call_expr: &Expr<'_>) {
46-
if !is_trait_method(cx, call_expr, sym::IntoIterator) {
46+
if !cx
47+
.ty_based_def(call_expr)
48+
.opt_parent(cx)
49+
.is_diag_item(cx, sym::IntoIterator)
50+
{
4751
return;
4852
}
4953

clippy_lints/src/loops/iter_next_loop.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
use super::ITER_NEXT_LOOP;
22
use clippy_utils::diagnostics::span_lint;
3-
use clippy_utils::is_trait_method;
3+
use clippy_utils::res::{MaybeDef, MaybeTypeckRes};
44
use rustc_hir::Expr;
55
use rustc_lint::LateContext;
66
use rustc_span::sym;
77

88
pub(super) fn check(cx: &LateContext<'_>, arg: &Expr<'_>) {
9-
if is_trait_method(cx, arg, sym::Iterator) {
9+
if cx.ty_based_def(arg).opt_parent(cx).is_diag_item(cx, sym::Iterator) {
1010
span_lint(
1111
cx,
1212
ITER_NEXT_LOOP,

clippy_lints/src/loops/while_let_on_iterator.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@ use std::ops::ControlFlow;
22

33
use super::WHILE_LET_ON_ITERATOR;
44
use clippy_utils::diagnostics::span_lint_and_sugg;
5-
use clippy_utils::res::MaybeDef;
5+
use clippy_utils::res::{MaybeDef, MaybeTypeckRes};
66
use clippy_utils::source::snippet_with_applicability;
77
use clippy_utils::visitors::is_res_used;
8-
use clippy_utils::{get_enclosing_loop_or_multi_call_closure, higher, is_refutable, is_trait_method};
8+
use clippy_utils::{get_enclosing_loop_or_multi_call_closure, higher, is_refutable};
99
use rustc_errors::Applicability;
1010
use rustc_hir::def::Res;
1111
use rustc_hir::intravisit::{Visitor, walk_expr};
@@ -24,7 +24,7 @@ pub(super) fn check<'tcx>(cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) {
2424
// check for call to `Iterator::next`
2525
&& let ExprKind::MethodCall(method_name, iter_expr, [], _) = let_expr.kind
2626
&& method_name.ident.name == sym::next
27-
&& is_trait_method(cx, let_expr, sym::Iterator)
27+
&& cx.ty_based_def(let_expr).opt_parent(cx).is_diag_item(cx, sym::Iterator)
2828
&& let Some(iter_expr_struct) = try_parse_iter_expr(cx, iter_expr)
2929
// get the loop containing the match expression
3030
&& !uses_iter(cx, &iter_expr_struct, if_then)

clippy_lints/src/manual_clamp.rs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ use clippy_utils::consts::{ConstEvalCtxt, Constant};
33
use clippy_utils::diagnostics::{span_lint_and_then, span_lint_hir_and_then};
44
use clippy_utils::higher::If;
55
use clippy_utils::msrvs::{self, Msrv};
6-
use clippy_utils::res::{MaybeDef, MaybeResPath};
6+
use clippy_utils::res::{MaybeDef, MaybeResPath, MaybeTypeckRes};
77
use clippy_utils::sugg::Sugg;
88
use clippy_utils::ty::implements_trait;
99
use clippy_utils::visitors::is_const_evaluatable;
10-
use clippy_utils::{eq_expr_value, is_in_const_context, is_trait_method, peel_blocks, peel_blocks_with_stmt, sym};
10+
use clippy_utils::{eq_expr_value, is_in_const_context, peel_blocks, peel_blocks_with_stmt, sym};
1111
use itertools::Itertools;
1212
use rustc_errors::{Applicability, Diag};
1313
use rustc_hir::def::Res;
@@ -290,10 +290,12 @@ fn is_if_elseif_else_pattern<'tcx>(cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx
290290
/// # ;
291291
/// ```
292292
fn is_max_min_pattern<'tcx>(cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>) -> Option<ClampSuggestion<'tcx>> {
293-
if let ExprKind::MethodCall(seg_second, receiver, [arg_second], _) = &expr.kind
294-
&& (cx.typeck_results().expr_ty_adjusted(receiver).is_floating_point() || is_trait_method(cx, expr, sym::Ord))
293+
if let ExprKind::MethodCall(seg_second, receiver, [arg_second], _) = expr.kind
294+
&& (cx.typeck_results().expr_ty_adjusted(receiver).is_floating_point()
295+
|| cx.ty_based_def(expr).assoc_fn_parent(cx).is_diag_item(cx, sym::Ord))
295296
&& let ExprKind::MethodCall(seg_first, input, [arg_first], _) = &receiver.kind
296-
&& (cx.typeck_results().expr_ty_adjusted(input).is_floating_point() || is_trait_method(cx, receiver, sym::Ord))
297+
&& (cx.typeck_results().expr_ty_adjusted(input).is_floating_point()
298+
|| cx.ty_based_def(receiver).assoc_fn_parent(cx).is_diag_item(cx, sym::Ord))
297299
{
298300
let is_float = cx.typeck_results().expr_ty_adjusted(input).is_floating_point();
299301
let (min, max) = match (seg_first.ident.name, seg_second.ident.name) {

clippy_lints/src/manual_hash_one.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
use clippy_config::Conf;
22
use clippy_utils::diagnostics::span_lint_hir_and_then;
33
use clippy_utils::msrvs::{self, Msrv};
4-
use clippy_utils::res::MaybeResPath;
4+
use clippy_utils::res::{MaybeDef, MaybeResPath, MaybeTypeckRes};
55
use clippy_utils::source::SpanRangeExt;
6+
use clippy_utils::sym;
67
use clippy_utils::visitors::{is_local_used, local_used_once};
7-
use clippy_utils::{is_trait_method, sym};
88
use rustc_errors::Applicability;
99
use rustc_hir::{BindingMode, ExprKind, LetStmt, Node, PatKind, StmtKind};
1010
use rustc_lint::{LateContext, LateLintPass};
@@ -82,7 +82,7 @@ impl LateLintPass<'_> for ManualHashOne {
8282
&& !hash_expr.span.from_expansion()
8383
&& let ExprKind::MethodCall(seg, hashed_value, [ref_to_hasher], _) = hash_expr.kind
8484
&& seg.ident.name == sym::hash
85-
&& is_trait_method(cx, hash_expr, sym::Hash)
85+
&& cx.ty_based_def(hash_expr).opt_parent(cx).is_diag_item(cx, sym::Hash)
8686
&& ref_to_hasher.peel_borrows().res_local_id() == Some(hasher)
8787

8888
&& let maybe_finish_stmt = stmts.next()

clippy_lints/src/manual_main_separator_str.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
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::{is_trait_method, peel_hir_expr_refs};
4+
use clippy_utils::peel_hir_expr_refs;
5+
use clippy_utils::res::{MaybeDef, MaybeTypeckRes};
56
use rustc_errors::Applicability;
67
use rustc_hir::def::{DefKind, Res};
78
use rustc_hir::{Expr, ExprKind, Mutability, QPath};
@@ -52,7 +53,7 @@ impl LateLintPass<'_> for ManualMainSeparatorStr {
5253
&& path.ident.name == sym::to_string
5354
&& let ExprKind::Path(QPath::Resolved(None, path)) = receiver.kind
5455
&& let Res::Def(DefKind::Const, receiver_def_id) = path.res
55-
&& is_trait_method(cx, target, sym::ToString)
56+
&& cx.ty_based_def(target).opt_parent(cx).is_diag_item(cx, sym::ToString)
5657
&& cx.tcx.is_diagnostic_item(sym::path_main_separator, receiver_def_id)
5758
&& let ty::Ref(_, ty, Mutability::Not) = cx.typeck_results().expr_ty_adjusted(expr).kind()
5859
&& ty.is_str()

clippy_lints/src/matches/redundant_pattern_match.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
use super::REDUNDANT_PATTERN_MATCHING;
22
use clippy_utils::diagnostics::{span_lint_and_sugg, span_lint_and_then};
3-
use clippy_utils::res::MaybeDef;
3+
use clippy_utils::res::{MaybeDef, MaybeTypeckRes};
44
use clippy_utils::source::walk_span_to_context;
55
use clippy_utils::sugg::{Sugg, make_unop};
66
use clippy_utils::ty::needs_ordered_drop;
77
use clippy_utils::visitors::{any_temporaries_need_ordered_drop, for_each_expr_without_closures};
8-
use clippy_utils::{higher, is_expn_of, is_trait_method, sym};
8+
use clippy_utils::{higher, is_expn_of, sym};
99
use rustc_ast::ast::LitKind;
1010
use rustc_errors::Applicability;
1111
use rustc_hir::LangItem::{self, OptionNone, OptionSome, PollPending, PollReady, ResultErr, ResultOk};
@@ -217,7 +217,7 @@ fn find_method_sugg_for_if_let<'tcx>(
217217
if keyword == "while"
218218
&& let ExprKind::MethodCall(method_path, _, [], _) = let_expr.kind
219219
&& method_path.ident.name == sym::next
220-
&& is_trait_method(cx, let_expr, sym::Iterator)
220+
&& cx.ty_based_def(let_expr).opt_parent(cx).is_diag_item(cx, sym::Iterator)
221221
{
222222
return;
223223
}

0 commit comments

Comments
 (0)