Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir_def/src/item_tree/pretty.rs')
| -rw-r--r-- | crates/hir_def/src/item_tree/pretty.rs | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/crates/hir_def/src/item_tree/pretty.rs b/crates/hir_def/src/item_tree/pretty.rs index 0df6e97dd4..5b211a142a 100644 --- a/crates/hir_def/src/item_tree/pretty.rs +++ b/crates/hir_def/src/item_tree/pretty.rs @@ -6,7 +6,7 @@ use itertools::Itertools; use crate::{ attr::RawAttrs, - generics::{WherePredicate, WherePredicateTypeTarget}, + generics::{TypeOrConstParamData, WherePredicate, WherePredicateTypeTarget}, path::GenericArg, type_ref::TraitBoundModifier, visibility::RawVisibility, @@ -626,7 +626,7 @@ impl<'a> Printer<'a> { } fn print_generic_params(&mut self, params: &GenericParams) { - if params.types.is_empty() && params.lifetimes.is_empty() && params.consts.is_empty() { + if params.types.is_empty() && params.lifetimes.is_empty() { return; } @@ -639,23 +639,21 @@ impl<'a> Printer<'a> { first = false; w!(self, "{}", lt.name); } - for (idx, ty) in params.types.iter() { + for (idx, x) in params.types.iter() { if !first { w!(self, ", "); } first = false; - match &ty.name { - Some(name) => w!(self, "{}", name), - None => w!(self, "_anon_{}", idx.into_raw()), - } - } - for (_, konst) in params.consts.iter() { - if !first { - w!(self, ", "); + match x { + TypeOrConstParamData::TypeParamData(ty) => match &ty.name { + Some(name) => w!(self, "{}", name), + None => w!(self, "_anon_{}", idx.into_raw()), + }, + TypeOrConstParamData::ConstParamData(konst) => { + w!(self, "const {}: ", konst.name); + self.print_type_ref(&konst.ty); + } } - first = false; - w!(self, "const {}: ", konst.name); - self.print_type_ref(&konst.ty); } w!(self, ">"); } @@ -702,10 +700,12 @@ impl<'a> Printer<'a> { match target { WherePredicateTypeTarget::TypeRef(ty) => this.print_type_ref(ty), - WherePredicateTypeTarget::TypeParam(id) => match ¶ms.types[*id].name { - Some(name) => w!(this, "{}", name), - None => w!(this, "_anon_{}", id.into_raw()), - }, + WherePredicateTypeTarget::TypeOrConstParam(id) => { + match ¶ms.types[*id].name() { + Some(name) => w!(this, "{}", name), + None => w!(this, "_anon_{}", id.into_raw()), + } + } } w!(this, ": "); this.print_type_bounds(std::slice::from_ref(bound)); |