diff options
| author | Michael Goulet <michael@errs.io> | 2023-12-26 13:29:14 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-12-26 13:29:14 -0500 |
| commit | e1be642b41a79bd23b46aaa229cac4e23638b169 (patch) | |
| tree | 523210bd477925f28b5c6aca115973d79ef297c1 /compiler/rustc_pattern_analysis/src/constructor.rs | |
| parent | 65aaece6c0d09ec0129088c6abc203612c9e39d0 (diff) | |
| parent | 48d089a8002d57f0c7b473905bc1925e99bcc76d (diff) | |
| download | rust-e1be642b41a79bd23b46aaa229cac4e23638b169.tar.gz rust-e1be642b41a79bd23b46aaa229cac4e23638b169.zip | |
Rollup merge of #119307 - compiler-errors:pat-lifetimes, r=Nadrieril
Clean up some lifetimes in `rustc_pattern_analysis` This PR removes some redundant lifetimes. I figured out that we were shortening the lifetime of an arena-allocated `&'p DeconstructedPat<'p>` to `'a DeconstructedPat<'p>`, which forced us to carry both lifetimes when we could otherwise carry just one. This PR also removes and elides some unnecessary lifetimes. I also cherry-picked 0292eb9bb9b897f5c0926c6a8530877f67e7cc9b, and then simplified more lifetimes in `MatchVisitor`, which should make #119233 a very simple PR! r? Nadrieril
Diffstat (limited to 'compiler/rustc_pattern_analysis/src/constructor.rs')
| -rw-r--r-- | compiler/rustc_pattern_analysis/src/constructor.rs | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/compiler/rustc_pattern_analysis/src/constructor.rs b/compiler/rustc_pattern_analysis/src/constructor.rs index b688051ca9c..15ff4ceb5b3 100644 --- a/compiler/rustc_pattern_analysis/src/constructor.rs +++ b/compiler/rustc_pattern_analysis/src/constructor.rs @@ -861,12 +861,9 @@ impl<Cx: TypeCx> ConstructorSet<Cx> { #[instrument(level = "debug", skip(self, pcx, ctors), ret)] pub(crate) fn split<'a>( &self, - pcx: &PlaceCtxt<'_, '_, Cx>, + pcx: &PlaceCtxt<'a, '_, Cx>, ctors: impl Iterator<Item = &'a Constructor<Cx>> + Clone, - ) -> SplitConstructorSet<Cx> - where - Cx: 'a, - { + ) -> SplitConstructorSet<Cx> { let mut present: SmallVec<[_; 1]> = SmallVec::new(); // Empty constructors found missing. let mut missing_empty = Vec::new(); |
