Skip to content

Commit e78f86d

Browse files
committed
Remove is_diag_item_method
1 parent 2e6729e commit e78f86d

File tree

4 files changed

+17
-19
lines changed

4 files changed

+17
-19
lines changed

clippy_lints/src/lines_filter_map_ok.rs

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use clippy_config::Conf;
22
use clippy_utils::diagnostics::span_lint_and_then;
33
use clippy_utils::msrvs::{self, Msrv};
44
use clippy_utils::res::{MaybeDef, MaybeResPath};
5-
use clippy_utils::{is_diag_item_method, is_trait_method, sym};
5+
use clippy_utils::{is_trait_method, sym};
66
use rustc_errors::Applicability;
77
use rustc_hir::{Body, Closure, Expr, ExprKind};
88
use rustc_lint::{LateContext, LateLintPass};
@@ -120,10 +120,15 @@ fn should_lint(cx: &LateContext<'_>, args: &[Expr<'_>], method_name: Symbol) ->
120120
params: [param], value, ..
121121
} = cx.tcx.hir_body(*body)
122122
&& let ExprKind::MethodCall(method, receiver, [], _) = value.kind
123-
&& receiver.res_local_id() == Some(param.pat.hir_id)
124-
&& let Some(method_did) = cx.typeck_results().type_dependent_def_id(value.hir_id)
125123
{
126-
is_diag_item_method(cx, method_did, sym::Result) && method.ident.name == sym::ok
124+
method.ident.name == sym::ok
125+
&& receiver.res_local_id() == Some(param.pat.hir_id)
126+
&& cx
127+
.typeck_results()
128+
.type_dependent_def_id(value.hir_id)
129+
.opt_parent(cx)
130+
.opt_impl_ty(cx)
131+
.is_diag_item(cx, sym::Result)
127132
} else {
128133
false
129134
}

clippy_lints/src/methods/manual_inspect.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use clippy_utils::res::{MaybeDef, MaybeResPath};
44
use clippy_utils::source::{IntoSpan, SpanRangeExt};
55
use clippy_utils::ty::get_field_by_name;
66
use clippy_utils::visitors::{for_each_expr, for_each_expr_without_closures};
7-
use clippy_utils::{ExprUseNode, expr_use_ctxt, is_diag_item_method, sym};
7+
use clippy_utils::{ExprUseNode, expr_use_ctxt, sym};
88
use core::ops::ControlFlow;
99
use rustc_errors::Applicability;
1010
use rustc_hir::{BindingMode, BorrowKind, ByRef, ClosureKind, Expr, ExprKind, Mutability, Node, PatKind};
@@ -21,7 +21,8 @@ pub(crate) fn check(cx: &LateContext<'_>, expr: &Expr<'_>, arg: &Expr<'_>, name:
2121
&& let typeck = cx.typeck_results()
2222
&& let Some(fn_def) = typeck.type_dependent_def(expr.hir_id)
2323
&& (fn_def.assoc_fn_parent(cx).is_diag_item(cx, sym::Iterator)
24-
|| ((is_diag_item_method(cx, fn_def.1, sym::Option) || is_diag_item_method(cx, fn_def.1, sym::Result))
24+
|| ((fn_def.assoc_fn_parent(cx).opt_impl_ty(cx).is_diag_item(cx, sym::Option)
25+
|| fn_def.assoc_fn_parent(cx).opt_impl_ty(cx).is_diag_item(cx, sym::Result))
2526
&& msrv.meets(cx, msrvs::OPTION_RESULT_INSPECT)))
2627
&& let body = cx.tcx.hir_body(c.body)
2728
&& let [param] = body.params

clippy_lints/src/methods/str_splitn.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
use clippy_utils::consts::{ConstEvalCtxt, Constant};
22
use clippy_utils::diagnostics::{span_lint_and_sugg, span_lint_and_then};
33
use clippy_utils::msrvs::{self, Msrv};
4-
use clippy_utils::res::MaybeResPath;
4+
use clippy_utils::res::{MaybeDef, MaybeResPath};
55
use clippy_utils::source::snippet_with_context;
66
use clippy_utils::usage::local_used_after_expr;
77
use clippy_utils::visitors::{Descend, for_each_expr};
8-
use clippy_utils::{is_diag_item_method, paths, sym};
8+
use clippy_utils::{paths, sym};
99
use core::ops::ControlFlow;
1010
use rustc_errors::Applicability;
1111
use rustc_hir::{
@@ -351,7 +351,9 @@ fn parse_iter_usage<'tcx>(
351351
&& cx
352352
.typeck_results()
353353
.type_dependent_def_id(e.hir_id)
354-
.is_some_and(|id| is_diag_item_method(cx, id, sym::Option)) =>
354+
.opt_parent(cx)
355+
.opt_impl_ty(cx)
356+
.is_diag_item(cx, sym::Option) =>
355357
{
356358
(Some(UnwrapKind::Unwrap), e.span)
357359
},

clippy_utils/src/lib.rs

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -356,16 +356,6 @@ pub fn is_inherent_method_call(cx: &LateContext<'_>, expr: &Expr<'_>) -> bool {
356356
}
357357
}
358358

359-
/// Checks if a method is defined in an impl of a diagnostic item
360-
pub fn is_diag_item_method(cx: &LateContext<'_>, def_id: DefId, diag_item: Symbol) -> bool {
361-
if let Some(impl_did) = cx.tcx.impl_of_assoc(def_id)
362-
&& let Some(adt) = cx.tcx.type_of(impl_did).instantiate_identity().ty_adt_def()
363-
{
364-
return cx.tcx.is_diagnostic_item(diag_item, adt.did());
365-
}
366-
false
367-
}
368-
369359
/// Checks if the method call given in `expr` belongs to the given trait.
370360
pub fn is_trait_method(cx: &LateContext<'_>, expr: &Expr<'_>, diag_item: Symbol) -> bool {
371361
cx.typeck_results()

0 commit comments

Comments
 (0)