diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2021-03-01 13:29:54 +0000 |
---|---|---|
committer | GitHub <[email protected]> | 2021-03-01 13:29:54 +0000 |
commit | 4a9eec44787a0f2b35467ea98dd6f596671907f9 (patch) | |
tree | b2a941497dea3cc38adb6c55049668aa31b2554b /crates/hir_ty/src/display.rs | |
parent | cda13d54613006c7985da0489878605300ba05b8 (diff) | |
parent | 5d121cdb45f5199828ed64a2ca01a74998e023ad (diff) |
Merge #7826
7826: Introduce Ty::Alias r=Veykril a=Veykril
bors r+
Co-authored-by: Lukas Wirth <[email protected]>
Diffstat (limited to 'crates/hir_ty/src/display.rs')
-rw-r--r-- | crates/hir_ty/src/display.rs | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/crates/hir_ty/src/display.rs b/crates/hir_ty/src/display.rs index ff8211094..f3a4333cb 100644 --- a/crates/hir_ty/src/display.rs +++ b/crates/hir_ty/src/display.rs | |||
@@ -3,8 +3,9 @@ | |||
3 | use std::{borrow::Cow, fmt}; | 3 | use std::{borrow::Cow, fmt}; |
4 | 4 | ||
5 | use crate::{ | 5 | use crate::{ |
6 | db::HirDatabase, primitive, utils::generics, CallableDefId, CallableSig, GenericPredicate, | 6 | db::HirDatabase, primitive, utils::generics, AliasTy, CallableDefId, CallableSig, |
7 | Lifetime, Obligation, OpaqueTy, OpaqueTyId, ProjectionTy, Scalar, Substs, TraitRef, Ty, | 7 | GenericPredicate, Lifetime, Obligation, OpaqueTy, OpaqueTyId, ProjectionTy, Scalar, Substs, |
8 | TraitRef, Ty, | ||
8 | }; | 9 | }; |
9 | use arrayvec::ArrayVec; | 10 | use arrayvec::ArrayVec; |
10 | use hir_def::{ | 11 | use hir_def::{ |
@@ -284,12 +285,12 @@ impl HirDisplay for Ty { | |||
284 | t.hir_fmt(f)?; | 285 | t.hir_fmt(f)?; |
285 | write!(f, "; _]")?; | 286 | write!(f, "; _]")?; |
286 | } | 287 | } |
287 | Ty::RawPtr(m, parameters) | Ty::Ref(m, parameters) => { | 288 | Ty::Raw(m, parameters) | Ty::Ref(m, parameters) => { |
288 | let t = parameters.as_single(); | 289 | let t = parameters.as_single(); |
289 | let ty_display = | 290 | let ty_display = |
290 | t.into_displayable(f.db, f.max_size, f.omit_verbose_types, f.display_target); | 291 | t.into_displayable(f.db, f.max_size, f.omit_verbose_types, f.display_target); |
291 | 292 | ||
292 | if matches!(self, Ty::RawPtr(..)) { | 293 | if matches!(self, Ty::Raw(..)) { |
293 | write!(f, "*{}", m.as_keyword_for_ptr())?; | 294 | write!(f, "*{}", m.as_keyword_for_ptr())?; |
294 | } else { | 295 | } else { |
295 | write!(f, "&{}", m.as_keyword_for_ref())?; | 296 | write!(f, "&{}", m.as_keyword_for_ref())?; |
@@ -300,10 +301,10 @@ impl HirDisplay for Ty { | |||
300 | Ty::Dyn(predicates) if predicates.len() > 1 => { | 301 | Ty::Dyn(predicates) if predicates.len() > 1 => { |
301 | Cow::Borrowed(predicates.as_ref()) | 302 | Cow::Borrowed(predicates.as_ref()) |
302 | } | 303 | } |
303 | &Ty::Opaque(OpaqueTy { | 304 | &Ty::Alias(AliasTy::Opaque(OpaqueTy { |
304 | opaque_ty_id: OpaqueTyId::ReturnTypeImplTrait(func, idx), | 305 | opaque_ty_id: OpaqueTyId::ReturnTypeImplTrait(func, idx), |
305 | ref parameters, | 306 | ref parameters, |
306 | }) => { | 307 | })) => { |
307 | datas = | 308 | datas = |
308 | f.db.return_type_impl_traits(func).expect("impl trait id without data"); | 309 | f.db.return_type_impl_traits(func).expect("impl trait id without data"); |
309 | let data = (*datas) | 310 | let data = (*datas) |
@@ -518,7 +519,6 @@ impl HirDisplay for Ty { | |||
518 | write!(f, "{{closure}}")?; | 519 | write!(f, "{{closure}}")?; |
519 | } | 520 | } |
520 | } | 521 | } |
521 | Ty::Projection(p_ty) => p_ty.hir_fmt(f)?, | ||
522 | Ty::Placeholder(id) => { | 522 | Ty::Placeholder(id) => { |
523 | let generics = generics(f.db.upcast(), id.parent); | 523 | let generics = generics(f.db.upcast(), id.parent); |
524 | let param_data = &generics.params.types[id.local_id]; | 524 | let param_data = &generics.params.types[id.local_id]; |
@@ -537,11 +537,12 @@ impl HirDisplay for Ty { | |||
537 | } | 537 | } |
538 | } | 538 | } |
539 | } | 539 | } |
540 | Ty::Bound(idx) => write!(f, "?{}.{}", idx.debruijn.depth(), idx.index)?, | 540 | Ty::BoundVar(idx) => write!(f, "?{}.{}", idx.debruijn.depth(), idx.index)?, |
541 | Ty::Dyn(predicates) => { | 541 | Ty::Dyn(predicates) => { |
542 | write_bounds_like_dyn_trait_with_prefix("dyn", predicates, f)?; | 542 | write_bounds_like_dyn_trait_with_prefix("dyn", predicates, f)?; |
543 | } | 543 | } |
544 | Ty::Opaque(opaque_ty) => { | 544 | Ty::Alias(AliasTy::Projection(p_ty)) => p_ty.hir_fmt(f)?, |
545 | Ty::Alias(AliasTy::Opaque(opaque_ty)) => { | ||
545 | match opaque_ty.opaque_ty_id { | 546 | match opaque_ty.opaque_ty_id { |
546 | OpaqueTyId::ReturnTypeImplTrait(func, idx) => { | 547 | OpaqueTyId::ReturnTypeImplTrait(func, idx) => { |
547 | let datas = | 548 | let datas = |