diff options
| author | Taiki Endo <te316e89@gmail.com> | 2019-05-29 18:50:24 +0900 |
|---|---|---|
| committer | Niko Matsakis <niko@alum.mit.edu> | 2019-06-28 10:55:24 -0400 |
| commit | cef33d4ef9b448d5d088de61189f02184edbeca4 (patch) | |
| tree | da42e05c99e8d89c4ab3fe409384d86a4a897f77 | |
| parent | 3d0d96bd7b6d382ba25a237f4954ec4e6ade081c (diff) | |
| download | rust-cef33d4ef9b448d5d088de61189f02184edbeca4.tar.gz rust-cef33d4ef9b448d5d088de61189f02184edbeca4.zip | |
Use Set1<Region> instead of Option<Region>
| -rw-r--r-- | src/librustc/middle/resolve_lifetime.rs | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/librustc/middle/resolve_lifetime.rs b/src/librustc/middle/resolve_lifetime.rs index c901ce1de57..50715a456ec 100644 --- a/src/librustc/middle/resolve_lifetime.rs +++ b/src/librustc/middle/resolve_lifetime.rs @@ -2129,7 +2129,7 @@ impl<'a, 'tcx> LifetimeContext<'a, 'tcx> { struct SelfVisitor<'a> { map: &'a NamedRegionMap, impl_self: Option<&'a hir::TyKind>, - lifetime: Option<Region>, + lifetime: Set1<Region>, } impl SelfVisitor<'_> { @@ -2173,8 +2173,9 @@ impl<'a, 'tcx> LifetimeContext<'a, 'tcx> { if let hir::TyKind::Path(hir::QPath::Resolved(None, ref path)) = mt.ty.node { if self.is_self_ty(path.res) { - self.lifetime = self.map.defs.get(&lifetime_ref.hir_id).copied(); - return; + if let Some(lifetime) = self.map.defs.get(&lifetime_ref.hir_id) { + self.lifetime.insert(*lifetime); + } } } } @@ -2185,10 +2186,10 @@ impl<'a, 'tcx> LifetimeContext<'a, 'tcx> { let mut visitor = SelfVisitor { map: self.map, impl_self: impl_self.map(|ty| &ty.node), - lifetime: None, + lifetime: Set1::Empty, }; visitor.visit_ty(&inputs[0]); - if let Some(lifetime) = visitor.lifetime { + if let Set1::One(lifetime) = visitor.lifetime { let scope = Scope::Elision { elide: Elide::Exact(lifetime), s: self.scope, |
