Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-ty/src/display.rs')
| -rw-r--r-- | crates/hir-ty/src/display.rs | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/crates/hir-ty/src/display.rs b/crates/hir-ty/src/display.rs index 22a52e6a23..42e33a9853 100644 --- a/crates/hir-ty/src/display.rs +++ b/crates/hir-ty/src/display.rs @@ -42,9 +42,10 @@ use crate::{ primitive, to_assoc_type_id, utils::{self, detect_variant_from_bytes, generics, ClosureSubst}, AdtId, AliasEq, AliasTy, Binders, CallableDefId, CallableSig, Const, ConstScalar, ConstValue, - DomainGoal, FnAbi, GenericArg, ImplTraitId, Interner, Lifetime, LifetimeData, LifetimeOutlives, - MemoryMap, Mutability, OpaqueTy, ProjectionTy, ProjectionTyExt, QuantifiedWhereClause, Scalar, - Substitution, TraitEnvironment, TraitRef, TraitRefExt, Ty, TyExt, WhereClause, + DomainGoal, FnAbi, GenericArg, GenericArgData, ImplTraitId, Interner, Lifetime, LifetimeData, + LifetimeOutlives, MemoryMap, Mutability, OpaqueTy, ProjectionTy, ProjectionTyExt, + QuantifiedWhereClause, Scalar, Substitution, TraitEnvironment, TraitRef, TraitRefExt, Ty, + TyExt, WhereClause, }; pub trait HirWrite: fmt::Write { @@ -1367,8 +1368,8 @@ fn hir_fmt_generics( return true; } } - if parameter.lifetime(Interner).map(|it| it.data(Interner)) - == Some(&crate::LifetimeData::Static) + if let Some(crate::LifetimeData::Static | crate::LifetimeData::Error) = + parameter.lifetime(Interner).map(|it| it.data(Interner)) { return true; } @@ -1403,10 +1404,18 @@ fn hir_fmt_generics( write!(f, ", ")?; } first = false; - if f.display_target.is_source_code() - && generic_arg.ty(Interner).map(|ty| ty.kind(Interner)) == Some(&TyKind::Error) - { - write!(f, "_")?; + if f.display_target.is_source_code() { + match generic_arg.data(Interner) { + GenericArgData::Lifetime(l) + if matches!(l.data(Interner), LifetimeData::Error) => + { + write!(f, "'_") + } + GenericArgData::Ty(t) if matches!(t.kind(Interner), TyKind::Error) => { + write!(f, "_") + } + _ => generic_arg.hir_fmt(f), + }? } else { generic_arg.hir_fmt(f)?; } @@ -1729,6 +1738,7 @@ impl HirDisplay for LifetimeData { Ok(()) } LifetimeData::Static => write!(f, "'static"), + LifetimeData::Error => write!(f, "'{{error}}"), LifetimeData::Erased => Ok(()), LifetimeData::Phantom(_, _) => Ok(()), } |