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 aa286c8c2..0e827a29e 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, |
@@ -718,6 +718,19 @@ impl HirDisplay for GenericPredicate { | |||
718 | } | 718 | } |
719 | } | 719 | } |
720 | 720 | ||
721 | impl HirDisplay for Lifetime { | ||
722 | fn hir_fmt(&self, f: &mut HirFormatter) -> Result<(), HirDisplayError> { | ||
723 | match self { | ||
724 | Lifetime::Parameter(id) => { | ||
725 | let generics = generics(f.db.upcast(), id.parent); | ||
726 | let param_data = &generics.params.lifetimes[id.local_id]; | ||
727 | write!(f, "{}", ¶m_data.name) | ||
728 | } | ||
729 | Lifetime::Static => write!(f, "'static"), | ||
730 | } | ||
731 | } | ||
732 | } | ||
733 | |||
721 | impl HirDisplay for Obligation { | 734 | impl HirDisplay for Obligation { |
722 | fn hir_fmt(&self, f: &mut HirFormatter) -> Result<(), HirDisplayError> { | 735 | fn hir_fmt(&self, f: &mut HirFormatter) -> Result<(), HirDisplayError> { |
723 | match self { | 736 | match self { |