Skip to content

Commit a160ce3

Browse files
committed
change usages of impl_trait_ref to bound_impl_trait_ref
1 parent efb631a commit a160ce3

11 files changed

+18
-18
lines changed

clippy_lints/src/derive.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -247,11 +247,11 @@ fn check_hash_peq<'tcx>(
247247
return;
248248
}
249249

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

252252
// Only care about `impl PartialEq<Foo> for Foo`
253253
// For `impl PartialEq<B> for A, input_types is [A, B]
254-
if trait_ref.substs.type_at(1) == ty {
254+
if trait_ref.subst_identity().substs.type_at(1) == ty {
255255
span_lint_and_then(
256256
cx,
257257
DERIVED_HASH_WITH_MANUAL_EQ,
@@ -295,11 +295,11 @@ fn check_ord_partial_ord<'tcx>(
295295
return;
296296
}
297297

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

300300
// Only care about `impl PartialOrd<Foo> for Foo`
301301
// For `impl PartialOrd<B> for A, input_types is [A, B]
302-
if trait_ref.substs.type_at(1) == ty {
302+
if trait_ref.subst_identity().substs.type_at(1) == ty {
303303
let mess = if partial_ord_is_automatically_derived {
304304
"you are implementing `Ord` explicitly but have derived `PartialOrd`"
305305
} else {

clippy_lints/src/fallible_impl_from.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,8 @@ impl<'tcx> LateLintPass<'tcx> for FallibleImplFrom {
5555
// check for `impl From<???> for ..`
5656
if_chain! {
5757
if let hir::ItemKind::Impl(impl_) = &item.kind;
58-
if let Some(impl_trait_ref) = cx.tcx.impl_trait_ref(item.owner_id);
59-
if cx.tcx.is_diagnostic_item(sym::From, impl_trait_ref.def_id);
58+
if let Some(impl_trait_ref) = cx.tcx.bound_impl_trait_ref(item.owner_id.to_def_id());
59+
if cx.tcx.is_diagnostic_item(sym::From, impl_trait_ref.skip_binder().def_id);
6060
then {
6161
lint_impl_body(cx, item.span, impl_.items);
6262
}

clippy_lints/src/from_over_into.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ impl<'tcx> LateLintPass<'tcx> for FromOverInto {
7676
&& let Some(into_trait_seg) = hir_trait_ref.path.segments.last()
7777
// `impl Into<target_ty> for self_ty`
7878
&& let Some(GenericArgs { args: [GenericArg::Type(target_ty)], .. }) = into_trait_seg.args
79-
&& let Some(middle_trait_ref) = cx.tcx.impl_trait_ref(item.owner_id)
79+
&& let Some(middle_trait_ref) = cx.tcx.bound_impl_trait_ref(item.owner_id.to_def_id()).map(ty::EarlyBinder::subst_identity)
8080
&& cx.tcx.is_diagnostic_item(sym::Into, middle_trait_ref.def_id)
8181
&& !matches!(middle_trait_ref.substs.type_at(1).kind(), ty::Alias(ty::Opaque, _))
8282
{

clippy_lints/src/implicit_saturating_sub.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ impl<'tcx> LateLintPass<'tcx> for ImplicitSaturatingSub {
101101
if name.ident.as_str() == "MIN";
102102
if let Some(const_id) = cx.typeck_results().type_dependent_def_id(cond_num_val.hir_id);
103103
if let Some(impl_id) = cx.tcx.impl_of_method(const_id);
104-
if let None = cx.tcx.impl_trait_ref(impl_id); // An inherent impl
104+
if let None = cx.tcx.bound_impl_trait_ref(impl_id); // An inherent impl
105105
if cx.tcx.type_of(impl_id).is_integral();
106106
then {
107107
print_lint_and_sugg(cx, var_name, expr)
@@ -114,7 +114,7 @@ impl<'tcx> LateLintPass<'tcx> for ImplicitSaturatingSub {
114114
if name.ident.as_str() == "min_value";
115115
if let Some(func_id) = cx.typeck_results().type_dependent_def_id(func.hir_id);
116116
if let Some(impl_id) = cx.tcx.impl_of_method(func_id);
117-
if let None = cx.tcx.impl_trait_ref(impl_id); // An inherent impl
117+
if let None = cx.tcx.bound_impl_trait_ref(impl_id); // An inherent impl
118118
if cx.tcx.type_of(impl_id).is_integral();
119119
then {
120120
print_lint_and_sugg(cx, var_name, expr)

clippy_lints/src/methods/implicit_clone.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ pub fn is_clone_like(cx: &LateContext<'_>, method_name: &str, method_def_id: hir
5353
"to_vec" => cx
5454
.tcx
5555
.impl_of_method(method_def_id)
56-
.filter(|&impl_did| cx.tcx.type_of(impl_did).is_slice() && cx.tcx.impl_trait_ref(impl_did).is_none())
56+
.filter(|&impl_did| cx.tcx.type_of(impl_did).is_slice() && cx.tcx.bound_impl_trait_ref(impl_did).is_none())
5757
.is_some(),
5858
_ => false,
5959
}

clippy_lints/src/methods/suspicious_splitn.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ pub(super) fn check(cx: &LateContext<'_>, method_name: &str, expr: &Expr<'_>, se
1212
if count <= 1;
1313
if let Some(call_id) = cx.typeck_results().type_dependent_def_id(expr.hir_id);
1414
if let Some(impl_id) = cx.tcx.impl_of_method(call_id);
15-
if cx.tcx.impl_trait_ref(impl_id).is_none();
15+
if cx.tcx.bound_impl_trait_ref(impl_id).is_none();
1616
let self_ty = cx.tcx.type_of(impl_id);
1717
if self_ty.is_slice() || self_ty.is_str();
1818
then {

clippy_lints/src/missing_doc.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ impl<'tcx> LateLintPass<'tcx> for MissingDoc {
175175
fn check_impl_item(&mut self, cx: &LateContext<'tcx>, impl_item: &'tcx hir::ImplItem<'_>) {
176176
// If the method is an impl for a trait, don't doc.
177177
if let Some(cid) = cx.tcx.associated_item(impl_item.owner_id).impl_container(cx.tcx) {
178-
if cx.tcx.impl_trait_ref(cid).is_some() {
178+
if cx.tcx.bound_impl_trait_ref(cid).is_some() {
179179
return;
180180
}
181181
} else {

clippy_lints/src/missing_inline.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ impl<'tcx> LateLintPass<'tcx> for MissingInline {
155155
let container_id = assoc_item.container_id(cx.tcx);
156156
let trait_def_id = match assoc_item.container {
157157
TraitContainer => Some(container_id),
158-
ImplContainer => cx.tcx.impl_trait_ref(container_id).map(|t| t.def_id),
158+
ImplContainer => cx.tcx.bound_impl_trait_ref(container_id).map(|t| t.skip_binder().def_id),
159159
};
160160

161161
if let Some(trait_def_id) = trait_def_id {

clippy_lints/src/non_send_fields_in_send_ty.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,8 @@ impl<'tcx> LateLintPass<'tcx> for NonSendFieldInSendTy {
8989
if let Some(trait_id) = trait_ref.trait_def_id();
9090
if send_trait == trait_id;
9191
if hir_impl.polarity == ImplPolarity::Positive;
92-
if let Some(ty_trait_ref) = cx.tcx.impl_trait_ref(item.owner_id);
93-
if let self_ty = ty_trait_ref.self_ty();
92+
if let Some(ty_trait_ref) = cx.tcx.bound_impl_trait_ref(item.owner_id.to_def_id());
93+
if let self_ty = ty_trait_ref.subst_identity().self_ty();
9494
if let ty::Adt(adt_def, impl_trait_substs) = self_ty.kind();
9595
then {
9696
let mut non_send_fields = Vec::new();

clippy_lints/src/only_used_in_recursion.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ impl<'tcx> LateLintPass<'tcx> for OnlyUsedInRecursion {
244244
})) => {
245245
#[allow(trivial_casts)]
246246
if let Some(Node::Item(item)) = get_parent_node(cx.tcx, owner_id.into())
247-
&& let Some(trait_ref) = cx.tcx.impl_trait_ref(item.owner_id)
247+
&& let Some(trait_ref) = cx.tcx.bound_impl_trait_ref(item.owner_id.to_def_id()).map(|t| t.subst_identity())
248248
&& let Some(trait_item_id) = cx.tcx.associated_item(owner_id).trait_item_def_id
249249
{
250250
(

clippy_lints/src/use_self.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -133,11 +133,11 @@ impl<'tcx> LateLintPass<'tcx> for UseSelf {
133133
ref mut types_to_skip,
134134
..
135135
}) = self.stack.last_mut();
136-
if let Some(impl_trait_ref) = cx.tcx.impl_trait_ref(impl_id);
136+
if let Some(impl_trait_ref) = cx.tcx.bound_impl_trait_ref(impl_id.to_def_id());
137137
then {
138138
// `self_ty` is the semantic self type of `impl <trait> for <type>`. This cannot be
139139
// `Self`.
140-
let self_ty = impl_trait_ref.self_ty();
140+
let self_ty = impl_trait_ref.subst_identity().self_ty();
141141

142142
// `trait_method_sig` is the signature of the function, how it is declared in the
143143
// trait, not in the impl of the trait.

0 commit comments

Comments
 (0)