]> git.lizzy.rs Git - rust.git/commitdiff
change usages of impl_trait_ref to bound_impl_trait_ref
authorKyle Matsuda <kyle.yoshio.matsuda@gmail.com>
Tue, 10 Jan 2023 21:22:52 +0000 (14:22 -0700)
committerKyle Matsuda <kyle.yoshio.matsuda@gmail.com>
Sat, 14 Jan 2023 07:23:32 +0000 (00:23 -0700)
clippy_lints/src/derive.rs
clippy_lints/src/fallible_impl_from.rs
clippy_lints/src/from_over_into.rs
clippy_lints/src/implicit_saturating_sub.rs
clippy_lints/src/methods/implicit_clone.rs
clippy_lints/src/methods/suspicious_splitn.rs
clippy_lints/src/missing_doc.rs
clippy_lints/src/missing_inline.rs
clippy_lints/src/non_send_fields_in_send_ty.rs
clippy_lints/src/only_used_in_recursion.rs
clippy_lints/src/use_self.rs

index f4b15e0916dbf47bca1aa427e5d46f35d9bfa45a..6b2b18fff76e0564f79c340842c6dac7b995ddbf 100644 (file)
@@ -247,11 +247,11 @@ fn check_hash_peq<'tcx>(
                     return;
                 }
 
-                let trait_ref = cx.tcx.impl_trait_ref(impl_id).expect("must be a trait implementation");
+                let trait_ref = cx.tcx.bound_impl_trait_ref(impl_id).expect("must be a trait implementation");
 
                 // Only care about `impl PartialEq<Foo> for Foo`
                 // For `impl PartialEq<B> for A, input_types is [A, B]
-                if trait_ref.substs.type_at(1) == ty {
+                if trait_ref.subst_identity().substs.type_at(1) == ty {
                     span_lint_and_then(
                         cx,
                         DERIVED_HASH_WITH_MANUAL_EQ,
@@ -295,11 +295,11 @@ fn check_ord_partial_ord<'tcx>(
                     return;
                 }
 
-                let trait_ref = cx.tcx.impl_trait_ref(impl_id).expect("must be a trait implementation");
+                let trait_ref = cx.tcx.bound_impl_trait_ref(impl_id).expect("must be a trait implementation");
 
                 // Only care about `impl PartialOrd<Foo> for Foo`
                 // For `impl PartialOrd<B> for A, input_types is [A, B]
-                if trait_ref.substs.type_at(1) == ty {
+                if trait_ref.subst_identity().substs.type_at(1) == ty {
                     let mess = if partial_ord_is_automatically_derived {
                         "you are implementing `Ord` explicitly but have derived `PartialOrd`"
                     } else {
index 9a1058470e18e6155af9a4c5a1ee711dde9553da..a8085122ccf95cdbe990f7f862b566ba14668b17 100644 (file)
@@ -55,8 +55,8 @@ fn check_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx hir::Item<'_>) {
         // check for `impl From<???> for ..`
         if_chain! {
             if let hir::ItemKind::Impl(impl_) = &item.kind;
-            if let Some(impl_trait_ref) = cx.tcx.impl_trait_ref(item.owner_id);
-            if cx.tcx.is_diagnostic_item(sym::From, impl_trait_ref.def_id);
+            if let Some(impl_trait_ref) = cx.tcx.bound_impl_trait_ref(item.owner_id.to_def_id());
+            if cx.tcx.is_diagnostic_item(sym::From, impl_trait_ref.skip_binder().def_id);
             then {
                 lint_impl_body(cx, item.span, impl_.items);
             }
index a92f7548ff254d16a2f51b255675650d139e8734..97d414bfa95e434bc4fa77408a1ee829e2c15294 100644 (file)
@@ -76,7 +76,7 @@ fn check_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx Item<'_>) {
             && let Some(into_trait_seg) = hir_trait_ref.path.segments.last()
             // `impl Into<target_ty> for self_ty`
             && let Some(GenericArgs { args: [GenericArg::Type(target_ty)], .. }) = into_trait_seg.args
-            && let Some(middle_trait_ref) = cx.tcx.impl_trait_ref(item.owner_id)
+            && let Some(middle_trait_ref) = cx.tcx.bound_impl_trait_ref(item.owner_id.to_def_id()).map(ty::EarlyBinder::subst_identity)
             && cx.tcx.is_diagnostic_item(sym::Into, middle_trait_ref.def_id)
             && !matches!(middle_trait_ref.substs.type_at(1).kind(), ty::Alias(ty::Opaque, _))
         {
index 29d59c26d92c4a2f697399ff93df5c753bc89152..37e33529a9a60ca1d9bf8192511630ec355059a9 100644 (file)
@@ -101,7 +101,7 @@ fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>) {
                             if name.ident.as_str() == "MIN";
                             if let Some(const_id) = cx.typeck_results().type_dependent_def_id(cond_num_val.hir_id);
                             if let Some(impl_id) = cx.tcx.impl_of_method(const_id);
-                            if let None = cx.tcx.impl_trait_ref(impl_id); // An inherent impl
+                            if let None = cx.tcx.bound_impl_trait_ref(impl_id); // An inherent impl
                             if cx.tcx.type_of(impl_id).is_integral();
                             then {
                                 print_lint_and_sugg(cx, var_name, expr)
@@ -114,7 +114,7 @@ fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>) {
                             if name.ident.as_str() == "min_value";
                             if let Some(func_id) = cx.typeck_results().type_dependent_def_id(func.hir_id);
                             if let Some(impl_id) = cx.tcx.impl_of_method(func_id);
-                            if let None = cx.tcx.impl_trait_ref(impl_id); // An inherent impl
+                            if let None = cx.tcx.bound_impl_trait_ref(impl_id); // An inherent impl
                             if cx.tcx.type_of(impl_id).is_integral();
                             then {
                                 print_lint_and_sugg(cx, var_name, expr)
index 06ecbce4e70e940bed5d941b41be29198817ef6c..16a25a98800de191643fcbf674c4da0273db7056 100644 (file)
@@ -53,7 +53,7 @@ pub fn is_clone_like(cx: &LateContext<'_>, method_name: &str, method_def_id: hir
         "to_vec" => cx
             .tcx
             .impl_of_method(method_def_id)
-            .filter(|&impl_did| cx.tcx.type_of(impl_did).is_slice() && cx.tcx.impl_trait_ref(impl_did).is_none())
+            .filter(|&impl_did| cx.tcx.type_of(impl_did).is_slice() && cx.tcx.bound_impl_trait_ref(impl_did).is_none())
             .is_some(),
         _ => false,
     }
index 219a9edd65768eeb3124f3c174375e5fce335058..dba0663467b7d28e83fa2a66e87ce0df9f4edbc8 100644 (file)
@@ -12,7 +12,7 @@ pub(super) fn check(cx: &LateContext<'_>, method_name: &str, expr: &Expr<'_>, se
         if count <= 1;
         if let Some(call_id) = cx.typeck_results().type_dependent_def_id(expr.hir_id);
         if let Some(impl_id) = cx.tcx.impl_of_method(call_id);
-        if cx.tcx.impl_trait_ref(impl_id).is_none();
+        if cx.tcx.bound_impl_trait_ref(impl_id).is_none();
         let self_ty = cx.tcx.type_of(impl_id);
         if self_ty.is_slice() || self_ty.is_str();
         then {
index 6fd100762b49dd7caacd956f9b6596f050d053db..d0c99b352452faa413e18c131d8e4f325add219b 100644 (file)
@@ -175,7 +175,7 @@ fn check_trait_item(&mut self, cx: &LateContext<'tcx>, trait_item: &'tcx hir::Tr
     fn check_impl_item(&mut self, cx: &LateContext<'tcx>, impl_item: &'tcx hir::ImplItem<'_>) {
         // If the method is an impl for a trait, don't doc.
         if let Some(cid) = cx.tcx.associated_item(impl_item.owner_id).impl_container(cx.tcx) {
-            if cx.tcx.impl_trait_ref(cid).is_some() {
+            if cx.tcx.bound_impl_trait_ref(cid).is_some() {
                 return;
             }
         } else {
index 758ce47cf114b8dc3aba594b3ba2ad3d24710a72..0594fb175458d41d3a88874eca41075e868dff3f 100644 (file)
@@ -155,7 +155,7 @@ fn check_impl_item(&mut self, cx: &LateContext<'tcx>, impl_item: &'tcx hir::Impl
         let container_id = assoc_item.container_id(cx.tcx);
         let trait_def_id = match assoc_item.container {
             TraitContainer => Some(container_id),
-            ImplContainer => cx.tcx.impl_trait_ref(container_id).map(|t| t.def_id),
+            ImplContainer => cx.tcx.bound_impl_trait_ref(container_id).map(|t| t.skip_binder().def_id),
         };
 
         if let Some(trait_def_id) = trait_def_id {
index 714c0ff227bf829d01f535ea5fc89a944d362b91..9c112ade948ff9a40dcca33005cd53d5222108b0 100644 (file)
@@ -89,8 +89,8 @@ fn check_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx Item<'_>) {
             if let Some(trait_id) = trait_ref.trait_def_id();
             if send_trait == trait_id;
             if hir_impl.polarity == ImplPolarity::Positive;
-            if let Some(ty_trait_ref) = cx.tcx.impl_trait_ref(item.owner_id);
-            if let self_ty = ty_trait_ref.self_ty();
+            if let Some(ty_trait_ref) = cx.tcx.bound_impl_trait_ref(item.owner_id.to_def_id());
+            if let self_ty = ty_trait_ref.subst_identity().self_ty();
             if let ty::Adt(adt_def, impl_trait_substs) = self_ty.kind();
             then {
                 let mut non_send_fields = Vec::new();
index 7722a476d7b4e5182abeea83af939b5653c7bc32..82b1716a216e6c4b3f34268a109cd69b48f6c923 100644 (file)
@@ -244,7 +244,7 @@ fn check_body(&mut self, cx: &LateContext<'tcx>, body: &'tcx Body<'tcx>) {
             })) => {
                 #[allow(trivial_casts)]
                 if let Some(Node::Item(item)) = get_parent_node(cx.tcx, owner_id.into())
-                    && let Some(trait_ref) = cx.tcx.impl_trait_ref(item.owner_id)
+                    && let Some(trait_ref) = cx.tcx.bound_impl_trait_ref(item.owner_id.to_def_id()).map(|t| t.subst_identity())
                     && let Some(trait_item_id) = cx.tcx.associated_item(owner_id).trait_item_def_id
                 {
                     (
index 4c755d812a0e0fe93c319fc6fa534be220d71022..9f31a13aa984bed491ac0cb08312a81b50789aad 100644 (file)
@@ -133,11 +133,11 @@ fn check_impl_item(&mut self, cx: &LateContext<'_>, impl_item: &hir::ImplItem<'_
                 ref mut types_to_skip,
                 ..
             }) = self.stack.last_mut();
-            if let Some(impl_trait_ref) = cx.tcx.impl_trait_ref(impl_id);
+            if let Some(impl_trait_ref) = cx.tcx.bound_impl_trait_ref(impl_id.to_def_id());
             then {
                 // `self_ty` is the semantic self type of `impl <trait> for <type>`. This cannot be
                 // `Self`.
-                let self_ty = impl_trait_ref.self_ty();
+                let self_ty = impl_trait_ref.subst_identity().self_ty();
 
                 // `trait_method_sig` is the signature of the function, how it is declared in the
                 // trait, not in the impl of the trait.