diff options
Diffstat (limited to 'crates/hir_ty/src/display.rs')
-rw-r--r-- | crates/hir_ty/src/display.rs | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/crates/hir_ty/src/display.rs b/crates/hir_ty/src/display.rs index e77481906..0d968cc68 100644 --- a/crates/hir_ty/src/display.rs +++ b/crates/hir_ty/src/display.rs | |||
@@ -4,7 +4,7 @@ use std::fmt; | |||
4 | 4 | ||
5 | use crate::{ | 5 | use crate::{ |
6 | db::HirDatabase, utils::generics, ApplicationTy, CallableDefId, FnSig, GenericPredicate, | 6 | db::HirDatabase, utils::generics, ApplicationTy, CallableDefId, FnSig, GenericPredicate, |
7 | Obligation, OpaqueTyId, ProjectionTy, Substs, TraitRef, Ty, TypeCtor, | 7 | Lifetime, Obligation, OpaqueTyId, ProjectionTy, Substs, TraitRef, Ty, TypeCtor, |
8 | }; | 8 | }; |
9 | use hir_def::{ | 9 | use hir_def::{ |
10 | find_path, generics::TypeParamProvenance, item_scope::ItemInNs, AdtId, AssocContainerId, | 10 | find_path, generics::TypeParamProvenance, item_scope::ItemInNs, AdtId, AssocContainerId, |
@@ -710,6 +710,19 @@ impl HirDisplay for GenericPredicate { | |||
710 | } | 710 | } |
711 | } | 711 | } |
712 | 712 | ||
713 | impl HirDisplay for Lifetime { | ||
714 | fn hir_fmt(&self, f: &mut HirFormatter) -> Result<(), HirDisplayError> { | ||
715 | match self { | ||
716 | Lifetime::Parameter(id) => { | ||
717 | let generics = generics(f.db.upcast(), id.parent); | ||
718 | let param_data = &generics.params.lifetimes[id.local_id]; | ||
719 | write!(f, "{}", ¶m_data.name) | ||
720 | } | ||
721 | Lifetime::Static => write!(f, "'static"), | ||
722 | } | ||
723 | } | ||
724 | } | ||
725 | |||
713 | impl HirDisplay for Obligation { | 726 | impl HirDisplay for Obligation { |
714 | fn hir_fmt(&self, f: &mut HirFormatter) -> Result<(), HirDisplayError> { | 727 | fn hir_fmt(&self, f: &mut HirFormatter) -> Result<(), HirDisplayError> { |
715 | match self { | 728 | match self { |