From db4e4afce8f87eb73db3808981215cd28e97095d Mon Sep 17 00:00:00 2001
From: Michael Goulet <michael@errs.io>
Date: Sun, 26 Mar 2023 20:33:54 +0000
Subject: [PATCH] Don't elaborate non-obligations into obligations

---
 clippy_lints/src/needless_pass_by_value.rs | 4 ++--
 clippy_utils/src/lib.rs                    | 1 -
 2 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/clippy_lints/src/needless_pass_by_value.rs b/clippy_lints/src/needless_pass_by_value.rs
index 1ab81aee7b8..327e090d38b 100644
--- a/clippy_lints/src/needless_pass_by_value.rs
+++ b/clippy_lints/src/needless_pass_by_value.rs
@@ -124,9 +124,9 @@ impl<'tcx> LateLintPass<'tcx> for NeedlessPassByValue {
 
         let preds = traits::elaborate_predicates(cx.tcx, cx.param_env.caller_bounds().iter())
             .filter(|p| !p.is_global())
-            .filter_map(|obligation| {
+            .filter_map(|pred| {
                 // Note that we do not want to deal with qualified predicates here.
-                match obligation.predicate.kind().no_bound_vars() {
+                match pred.kind().no_bound_vars() {
                     Some(ty::PredicateKind::Clause(ty::Clause::Trait(pred))) if pred.def_id() != sized_trait => {
                         Some(pred)
                     },
diff --git a/clippy_utils/src/lib.rs b/clippy_utils/src/lib.rs
index 29830557a44..fd06c0b8677 100644
--- a/clippy_utils/src/lib.rs
+++ b/clippy_utils/src/lib.rs
@@ -2106,7 +2106,6 @@ pub fn fn_has_unsatisfiable_preds(cx: &LateContext<'_>, did: DefId) -> bool {
     traits::impossible_predicates(
         cx.tcx,
         traits::elaborate_predicates(cx.tcx, predicates)
-            .map(|o| o.predicate)
             .collect::<Vec<_>>(),
     )
 }