diff options
| author | Jason Newcomb <jsnewcomb@pm.me> | 2022-01-15 00:15:25 -0500 |
|---|---|---|
| committer | Jason Newcomb <jsnewcomb@pm.me> | 2022-01-15 00:15:25 -0500 |
| commit | 70a6d7b012822576ca299b07f612392ca1e0fb91 (patch) | |
| tree | 534a42bc26fe3027f1390d6d86376214671831bd | |
| parent | 7a4acf9fa6ad31309a855132c4b9ff80f39bed65 (diff) | |
| download | rust-70a6d7b012822576ca299b07f612392ca1e0fb91.tar.gz rust-70a6d7b012822576ca299b07f612392ca1e0fb91.zip | |
Erase late bound regions in `iter_not_returning_iterator`
| -rw-r--r-- | clippy_lints/src/iter_not_returning_iterator.rs | 2 | ||||
| -rw-r--r-- | tests/ui/iter_not_returning_iterator.rs | 7 |
2 files changed, 8 insertions, 1 deletions
diff --git a/clippy_lints/src/iter_not_returning_iterator.rs b/clippy_lints/src/iter_not_returning_iterator.rs index d3bdc819a9f..b56d87c5348 100644 --- a/clippy_lints/src/iter_not_returning_iterator.rs +++ b/clippy_lints/src/iter_not_returning_iterator.rs @@ -66,7 +66,7 @@ impl<'tcx> LateLintPass<'tcx> for IterNotReturningIterator { fn check_sig(cx: &LateContext<'_>, name: &str, sig: &FnSig<'_>, fn_id: LocalDefId) { if sig.decl.implicit_self.has_implicit_self() { - let ret_ty = cx.tcx.fn_sig(fn_id).skip_binder().output(); + let ret_ty = cx.tcx.erase_late_bound_regions(cx.tcx.fn_sig(fn_id).output()); let ret_ty = cx .tcx .try_normalize_erasing_regions(cx.param_env, ret_ty) diff --git a/tests/ui/iter_not_returning_iterator.rs b/tests/ui/iter_not_returning_iterator.rs index 2c91e02e842..cce216fc649 100644 --- a/tests/ui/iter_not_returning_iterator.rs +++ b/tests/ui/iter_not_returning_iterator.rs @@ -64,4 +64,11 @@ impl S { } } +struct S2([u8]); +impl S2 { + fn iter(&self) -> core::slice::Iter<u8> { + self.0.iter() + } +} + fn main() {} |
