diff options
author | Florian Diebold <[email protected]> | 2021-03-13 18:47:34 +0000 |
---|---|---|
committer | Florian Diebold <[email protected]> | 2021-03-13 18:47:34 +0000 |
commit | 1bf6b7360c3f1d0e20dece5227979bc4d74a352f (patch) | |
tree | 13a5ae932c1af88d50bbde849ea6d4c317d196f2 /crates/hir_ty/src/display.rs | |
parent | 2d69eb131f58dee1bc188b8df8d5cf0ebf9d97f2 (diff) |
Use chalk_ir::PlaceholderIndex
Diffstat (limited to 'crates/hir_ty/src/display.rs')
-rw-r--r-- | crates/hir_ty/src/display.rs | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/crates/hir_ty/src/display.rs b/crates/hir_ty/src/display.rs index b7e85e024..0a13c8636 100644 --- a/crates/hir_ty/src/display.rs +++ b/crates/hir_ty/src/display.rs | |||
@@ -11,10 +11,10 @@ use hir_def::{ | |||
11 | use hir_expand::name::Name; | 11 | use hir_expand::name::Name; |
12 | 12 | ||
13 | use crate::{ | 13 | use crate::{ |
14 | db::HirDatabase, from_assoc_type_id, from_foreign_def_id, primitive, to_assoc_type_id, | 14 | db::HirDatabase, from_assoc_type_id, from_foreign_def_id, from_placeholder_idx, primitive, |
15 | traits::chalk::from_chalk, utils::generics, AdtId, AliasTy, CallableDefId, CallableSig, | 15 | to_assoc_type_id, traits::chalk::from_chalk, utils::generics, AdtId, AliasTy, CallableDefId, |
16 | GenericPredicate, Interner, Lifetime, Obligation, OpaqueTy, OpaqueTyId, ProjectionTy, Scalar, | 16 | CallableSig, GenericPredicate, Interner, Lifetime, Obligation, OpaqueTy, OpaqueTyId, |
17 | Substs, TraitRef, Ty, TyKind, | 17 | ProjectionTy, Scalar, Substs, TraitRef, Ty, TyKind, |
18 | }; | 18 | }; |
19 | 19 | ||
20 | pub struct HirFormatter<'a> { | 20 | pub struct HirFormatter<'a> { |
@@ -541,7 +541,8 @@ impl HirDisplay for Ty { | |||
541 | write!(f, "{{closure}}")?; | 541 | write!(f, "{{closure}}")?; |
542 | } | 542 | } |
543 | } | 543 | } |
544 | TyKind::Placeholder(id) => { | 544 | TyKind::Placeholder(idx) => { |
545 | let id = from_placeholder_idx(f.db, *idx); | ||
545 | let generics = generics(f.db.upcast(), id.parent); | 546 | let generics = generics(f.db.upcast(), id.parent); |
546 | let param_data = &generics.params.types[id.local_id]; | 547 | let param_data = &generics.params.types[id.local_id]; |
547 | match param_data.provenance { | 548 | match param_data.provenance { |
@@ -549,8 +550,8 @@ impl HirDisplay for Ty { | |||
549 | write!(f, "{}", param_data.name.clone().unwrap_or_else(Name::missing))? | 550 | write!(f, "{}", param_data.name.clone().unwrap_or_else(Name::missing))? |
550 | } | 551 | } |
551 | TypeParamProvenance::ArgumentImplTrait => { | 552 | TypeParamProvenance::ArgumentImplTrait => { |
552 | let bounds = f.db.generic_predicates_for_param(*id); | 553 | let bounds = f.db.generic_predicates_for_param(id); |
553 | let substs = Substs::type_params_for_generics(&generics); | 554 | let substs = Substs::type_params_for_generics(f.db, &generics); |
554 | write_bounds_like_dyn_trait_with_prefix( | 555 | write_bounds_like_dyn_trait_with_prefix( |
555 | "impl", | 556 | "impl", |
556 | &bounds.iter().map(|b| b.clone().subst(&substs)).collect::<Vec<_>>(), | 557 | &bounds.iter().map(|b| b.clone().subst(&substs)).collect::<Vec<_>>(), |