aboutsummaryrefslogtreecommitdiff
path: root/crates/hir_ty/src/lib.rs
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2021-04-06 09:52:02 +0100
committerGitHub <[email protected]>2021-04-06 09:52:02 +0100
commit047b5313013383fc4fafaef6d6d8d6a64549e3cb (patch)
treef4951c835dd6f4840ae02ba5c06d5da44aedae94 /crates/hir_ty/src/lib.rs
parent4bc8a018302d53951ae855ba57d07095a16ef182 (diff)
parent08dc69599efb4961319c0118b789d3abb264b7fa (diff)
Merge #8359
8359: Add Lifetime to TyKind::Ref and DynTy r=flodiebold a=Veykril CC #8313 Co-authored-by: Lukas Wirth <[email protected]>
Diffstat (limited to 'crates/hir_ty/src/lib.rs')
-rw-r--r--crates/hir_ty/src/lib.rs12
1 files changed, 8 insertions, 4 deletions
diff --git a/crates/hir_ty/src/lib.rs b/crates/hir_ty/src/lib.rs
index c3ec12352..bccc73449 100644
--- a/crates/hir_ty/src/lib.rs
+++ b/crates/hir_ty/src/lib.rs
@@ -165,16 +165,16 @@ impl CallableSig {
165} 165}
166 166
167impl Ty { 167impl Ty {
168 pub fn as_reference(&self) -> Option<(&Ty, Mutability)> { 168 pub fn as_reference(&self) -> Option<(&Ty, Lifetime, Mutability)> {
169 match self.kind(&Interner) { 169 match self.kind(&Interner) {
170 TyKind::Ref(mutability, ty) => Some((ty, *mutability)), 170 TyKind::Ref(mutability, lifetime, ty) => Some((ty, *lifetime, *mutability)),
171 _ => None, 171 _ => None,
172 } 172 }
173 } 173 }
174 174
175 pub fn as_reference_or_ptr(&self) -> Option<(&Ty, Rawness, Mutability)> { 175 pub fn as_reference_or_ptr(&self) -> Option<(&Ty, Rawness, Mutability)> {
176 match self.kind(&Interner) { 176 match self.kind(&Interner) {
177 TyKind::Ref(mutability, ty) => Some((ty, Rawness::Ref, *mutability)), 177 TyKind::Ref(mutability, _, ty) => Some((ty, Rawness::Ref, *mutability)),
178 TyKind::Raw(mutability, ty) => Some((ty, Rawness::RawPtr, *mutability)), 178 TyKind::Raw(mutability, ty) => Some((ty, Rawness::RawPtr, *mutability)),
179 _ => None, 179 _ => None,
180 } 180 }
@@ -183,7 +183,7 @@ impl Ty {
183 pub fn strip_references(&self) -> &Ty { 183 pub fn strip_references(&self) -> &Ty {
184 let mut t: &Ty = self; 184 let mut t: &Ty = self;
185 185
186 while let TyKind::Ref(_mutability, ty) = t.kind(&Interner) { 186 while let TyKind::Ref(_mutability, _lifetime, ty) = t.kind(&Interner) {
187 t = ty; 187 t = ty;
188 } 188 }
189 189
@@ -495,3 +495,7 @@ pub fn to_chalk_trait_id(id: TraitId) -> ChalkTraitId {
495pub fn from_chalk_trait_id(id: ChalkTraitId) -> TraitId { 495pub fn from_chalk_trait_id(id: ChalkTraitId) -> TraitId {
496 salsa::InternKey::from_intern_id(id.0) 496 salsa::InternKey::from_intern_id(id.0)
497} 497}
498
499pub fn static_lifetime() -> Lifetime {
500 LifetimeData::Static.intern(&Interner)
501}