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.rs36
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 &params.types[*id].name {
- Some(name) => w!(this, "{}", name),
- None => w!(this, "_anon_{}", id.into_raw()),
- },
+ WherePredicateTypeTarget::TypeOrConstParam(id) => {
+ match &params.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));