about summary refs log tree commit diff
path: root/src/tools/clippy
diff options
context:
space:
mode:
authorBoxy <supbscripter@gmail.com>2024-05-24 17:25:50 +0100
committerBoxy <supbscripter@gmail.com>2024-05-24 18:06:57 +0100
commitf856ee357c1d40eb51e2a545ed30063c55b24c32 (patch)
treeb7da31411c9c63e4aeee1fab1beddb8e1de772a4 /src/tools/clippy
parentfe2d7794ca189f9ec5e7f7fd9b059e7a2e785944 (diff)
downloadrust-f856ee357c1d40eb51e2a545ed30063c55b24c32.tar.gz
rust-f856ee357c1d40eb51e2a545ed30063c55b24c32.zip
Remove `DefId` from `EarlyParamRegion` (clippy/smir)
Diffstat (limited to 'src/tools/clippy')
-rw-r--r--src/tools/clippy/clippy_lints/src/ptr.rs19
1 files changed, 9 insertions, 10 deletions
diff --git a/src/tools/clippy/clippy_lints/src/ptr.rs b/src/tools/clippy/clippy_lints/src/ptr.rs
index 65929cd5fea..38580dc5822 100644
--- a/src/tools/clippy/clippy_lints/src/ptr.rs
+++ b/src/tools/clippy/clippy_lints/src/ptr.rs
@@ -460,13 +460,19 @@ fn check_fn_args<'cx, 'tcx: 'cx>(
                             }
                             None
                         }) {
-                            if !lifetime.is_anonymous()
+                            if let LifetimeName::Param(param_def_id) = lifetime.res
+                                && !lifetime.is_anonymous()
                                 && fn_sig
                                     .output()
                                     .walk()
                                     .filter_map(|arg| {
                                         arg.as_region().and_then(|lifetime| match lifetime.kind() {
-                                            ty::ReEarlyParam(r) => Some(r.def_id),
+                                            ty::ReEarlyParam(r) => Some(
+                                                cx.tcx
+                                                    .generics_of(cx.tcx.parent(param_def_id.to_def_id()))
+                                                    .region_param(r, cx.tcx)
+                                                    .def_id,
+                                            ),
                                             ty::ReBound(_, r) => r.kind.get_id(),
                                             ty::ReLateParam(r) => r.bound_region.get_id(),
                                             ty::ReStatic
@@ -476,14 +482,7 @@ fn check_fn_args<'cx, 'tcx: 'cx>(
                                             | ty::ReError(_) => None,
                                         })
                                     })
-                                    .any(|def_id| {
-                                        matches!(
-                                            lifetime.res,
-                                            LifetimeName::Param(param_def_id) if def_id
-                                                .as_local()
-                                                .is_some_and(|def_id| def_id == param_def_id),
-                                        )
-                                    })
+                                    .any(|def_id| def_id.as_local().is_some_and(|def_id| def_id == param_def_id))
                             {
                                 // `&Cow<'a, T>` when the return type uses 'a is okay
                                 return None;