Skip to content

Commit d111d39

Browse files
committed
Fix clippy for impl_trait_header changes
1 parent 94281d4 commit d111d39

15 files changed

+31
-44
lines changed

src/tools/clippy/clippy_lints/src/derive/derive_ord_xor_partial_ord.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ pub(super) fn check<'tcx>(
2828
return;
2929
}
3030

31-
let trait_ref = cx.tcx.impl_trait_ref(impl_id).expect("must be a trait implementation");
31+
let trait_ref = cx.tcx.impl_trait_ref(impl_id);
3232

3333
// Only care about `impl PartialOrd<Foo> for Foo`
3434
// For `impl PartialOrd<B> for A, input_types is [A, B]

src/tools/clippy/clippy_lints/src/derive/derived_hash_with_manual_eq.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ pub(super) fn check<'tcx>(
2727
return;
2828
}
2929

30-
let trait_ref = cx.tcx.impl_trait_ref(impl_id).expect("must be a trait implementation");
30+
let trait_ref = cx.tcx.impl_trait_ref(impl_id);
3131

3232
// Only care about `impl PartialEq<Foo> for Foo`
3333
// For `impl PartialEq<B> for A, input_types is [A, B]

src/tools/clippy/clippy_lints/src/fallible_impl_from.rs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -52,11 +52,9 @@ declare_lint_pass!(FallibleImplFrom => [FALLIBLE_IMPL_FROM]);
5252
impl<'tcx> LateLintPass<'tcx> for FallibleImplFrom {
5353
fn check_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx hir::Item<'_>) {
5454
// check for `impl From<???> for ..`
55-
if let hir::ItemKind::Impl(_) = &item.kind
56-
&& let Some(impl_trait_ref) = cx.tcx.impl_trait_ref(item.owner_id)
57-
&& cx
58-
.tcx
59-
.is_diagnostic_item(sym::From, impl_trait_ref.skip_binder().def_id)
55+
if let hir::ItemKind::Impl(hir::Impl { of_trait: Some(_), .. }) = &item.kind
56+
&& let impl_trait_id = cx.tcx.impl_trait_id(item.owner_id)
57+
&& cx.tcx.is_diagnostic_item(sym::From, impl_trait_id)
6058
{
6159
lint_impl_body(cx, item.owner_id, item.span);
6260
}

src/tools/clippy/clippy_lints/src/from_over_into.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,7 @@ impl<'tcx> LateLintPass<'tcx> for FromOverInto {
7676
// `impl Into<target_ty> for self_ty`
7777
&& let Some(GenericArgs { args: [GenericArg::Type(target_ty)], .. }) = into_trait_seg.args
7878
&& span_is_local(item.span)
79-
&& let Some(middle_trait_ref) = cx.tcx.impl_trait_ref(item.owner_id)
80-
.map(ty::EarlyBinder::instantiate_identity)
79+
&& let middle_trait_ref = cx.tcx.impl_trait_ref(item.owner_id).instantiate_identity()
8180
&& cx.tcx.is_diagnostic_item(sym::Into, middle_trait_ref.def_id)
8281
&& !matches!(middle_trait_ref.args.type_at(1).kind(), ty::Alias(ty::Opaque, _))
8382
&& self.msrv.meets(cx, msrvs::RE_REBALANCING_COHERENCE)

src/tools/clippy/clippy_lints/src/implicit_saturating_sub.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -339,8 +339,7 @@ fn check_with_condition<'tcx>(
339339
ExprKind::Path(QPath::TypeRelative(_, name)) => {
340340
if name.ident.name == sym::MIN
341341
&& let Some(const_id) = cx.typeck_results().type_dependent_def_id(cond_num_val.hir_id)
342-
&& let Some(impl_id) = cx.tcx.impl_of_assoc(const_id)
343-
&& let None = cx.tcx.impl_trait_ref(impl_id) // An inherent impl
342+
&& let Some(impl_id) = cx.tcx.inherent_impl_of_assoc(const_id)
344343
&& cx.tcx.type_of(impl_id).instantiate_identity().is_integral()
345344
{
346345
print_lint_and_sugg(cx, var_name, expr);
@@ -350,8 +349,7 @@ fn check_with_condition<'tcx>(
350349
if let ExprKind::Path(QPath::TypeRelative(_, name)) = func.kind
351350
&& name.ident.name == sym::min_value
352351
&& let Some(func_id) = cx.typeck_results().type_dependent_def_id(func.hir_id)
353-
&& let Some(impl_id) = cx.tcx.impl_of_assoc(func_id)
354-
&& let None = cx.tcx.impl_trait_ref(impl_id) // An inherent impl
352+
&& let Some(impl_id) = cx.tcx.inherent_impl_of_assoc(func_id)
355353
&& cx.tcx.type_of(impl_id).instantiate_identity().is_integral()
356354
{
357355
print_lint_and_sugg(cx, var_name, expr);

src/tools/clippy/clippy_lints/src/methods/implicit_clone.rs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,8 @@ pub fn is_clone_like(cx: &LateContext<'_>, method_name: Symbol, method_def_id: h
4848
sym::to_string => is_diag_trait_item(cx, method_def_id, sym::ToString),
4949
sym::to_vec => cx
5050
.tcx
51-
.impl_of_assoc(method_def_id)
52-
.filter(|&impl_did| {
53-
cx.tcx.type_of(impl_did).instantiate_identity().is_slice() && cx.tcx.impl_trait_ref(impl_did).is_none()
54-
})
55-
.is_some(),
51+
.inherent_impl_of_assoc(method_def_id)
52+
.is_some_and(|impl_did| cx.tcx.type_of(impl_did).instantiate_identity().is_slice()),
5653
_ => false,
5754
}
5855
}

src/tools/clippy/clippy_lints/src/methods/suspicious_splitn.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,7 @@ use super::SUSPICIOUS_SPLITN;
1010
pub(super) fn check(cx: &LateContext<'_>, method_name: Symbol, expr: &Expr<'_>, self_arg: &Expr<'_>, count: u128) {
1111
if count <= 1
1212
&& let Some(call_id) = cx.typeck_results().type_dependent_def_id(expr.hir_id)
13-
&& let Some(impl_id) = cx.tcx.impl_of_assoc(call_id)
14-
&& cx.tcx.impl_trait_ref(impl_id).is_none()
13+
&& let Some(impl_id) = cx.tcx.inherent_impl_of_assoc(call_id)
1514
&& let self_ty = cx.tcx.type_of(impl_id).instantiate_identity()
1615
&& (self_ty.is_slice() || self_ty.is_str())
1716
{

src/tools/clippy/clippy_lints/src/missing_inline.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ impl<'tcx> LateLintPass<'tcx> for MissingInline {
167167
let container_id = assoc_item.container_id(cx.tcx);
168168
let trait_def_id = match assoc_item.container {
169169
AssocContainer::Trait => Some(container_id),
170-
AssocContainer::TraitImpl(_) => cx.tcx.impl_trait_ref(container_id).map(|t| t.skip_binder().def_id),
170+
AssocContainer::TraitImpl(_) => Some(cx.tcx.impl_trait_id(container_id)),
171171
AssocContainer::InherentImpl => None,
172172
};
173173

src/tools/clippy/clippy_lints/src/non_canonical_impls.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ use clippy_utils::{
55
};
66
use rustc_errors::Applicability;
77
use rustc_hir::def_id::LocalDefId;
8-
use rustc_hir::{Block, Body, Expr, ExprKind, ImplItem, ImplItemKind, Item, LangItem, Node, UnOp};
8+
use rustc_hir::{Block, Body, Expr, ExprKind, ImplItem, ImplItemImplKind, ImplItemKind, Item, LangItem, Node, UnOp};
99
use rustc_lint::{LateContext, LateLintPass, LintContext};
10-
use rustc_middle::ty::{EarlyBinder, TraitRef};
10+
use rustc_middle::ty::TraitRef;
1111
use rustc_session::declare_lint_pass;
1212
use rustc_span::sym;
1313
use rustc_span::symbol::kw;
@@ -114,8 +114,9 @@ declare_lint_pass!(NonCanonicalImpls => [NON_CANONICAL_CLONE_IMPL, NON_CANONICAL
114114
impl LateLintPass<'_> for NonCanonicalImpls {
115115
fn check_impl_item<'tcx>(&mut self, cx: &LateContext<'tcx>, impl_item: &ImplItem<'tcx>) {
116116
if let ImplItemKind::Fn(_, impl_item_id) = impl_item.kind
117+
&& let ImplItemImplKind::Trait { .. } = impl_item.impl_kind
117118
&& let Node::Item(item) = cx.tcx.parent_hir_node(impl_item.hir_id())
118-
&& let Some(trait_impl) = cx.tcx.impl_trait_ref(item.owner_id).map(EarlyBinder::skip_binder)
119+
&& let trait_impl = cx.tcx.impl_trait_ref(item.owner_id).skip_binder()
119120
&& let trait_name = cx.tcx.get_diagnostic_name(trait_impl.def_id)
120121
// NOTE: check this early to avoid expensive checks that come after this one
121122
&& matches!(trait_name, Some(sym::Clone | sym::PartialOrd))

src/tools/clippy/clippy_lints/src/non_send_fields_in_send_ty.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ impl<'tcx> LateLintPass<'tcx> for NonSendFieldInSendTy {
8787
&& let Some(trait_id) = of_trait.trait_ref.trait_def_id()
8888
&& send_trait == trait_id
8989
&& of_trait.polarity == ImplPolarity::Positive
90-
&& let Some(ty_trait_ref) = cx.tcx.impl_trait_ref(item.owner_id)
90+
&& let ty_trait_ref = cx.tcx.impl_trait_ref(item.owner_id)
9191
&& let self_ty = ty_trait_ref.instantiate_identity().self_ty()
9292
&& let ty::Adt(adt_def, impl_trait_args) = self_ty.kind()
9393
{

0 commit comments

Comments
 (0)