aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/ty.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_hir/src/ty.rs')
-rw-r--r--crates/ra_hir/src/ty.rs13
1 files changed, 8 insertions, 5 deletions
diff --git a/crates/ra_hir/src/ty.rs b/crates/ra_hir/src/ty.rs
index 2a2dc26b4..3711068fa 100644
--- a/crates/ra_hir/src/ty.rs
+++ b/crates/ra_hir/src/ty.rs
@@ -26,7 +26,7 @@ use ra_db::{impl_intern_key, salsa};
26 26
27use crate::{ 27use crate::{
28 db::HirDatabase, expr::ExprId, util::make_mut_slice, Adt, Crate, FloatTy, IntTy, Mutability, 28 db::HirDatabase, expr::ExprId, util::make_mut_slice, Adt, Crate, FloatTy, IntTy, Mutability,
29 Name, Trait, Uncertain, 29 Name, Uncertain,
30}; 30};
31use display::{HirDisplay, HirFormatter}; 31use display::{HirDisplay, HirFormatter};
32 32
@@ -445,7 +445,7 @@ impl Deref for Substs {
445#[derive(Clone, PartialEq, Eq, Debug, Hash)] 445#[derive(Clone, PartialEq, Eq, Debug, Hash)]
446pub struct TraitRef { 446pub struct TraitRef {
447 /// FIXME name? 447 /// FIXME name?
448 pub trait_: Trait, 448 pub trait_: TraitId,
449 pub substs: Substs, 449 pub substs: Substs,
450} 450}
451 451
@@ -676,7 +676,7 @@ impl Ty {
676 } 676 }
677 677
678 /// If this is an `impl Trait` or `dyn Trait`, returns that trait. 678 /// If this is an `impl Trait` or `dyn Trait`, returns that trait.
679 pub fn inherent_trait(&self) -> Option<Trait> { 679 pub fn inherent_trait(&self) -> Option<TraitId> {
680 match self { 680 match self {
681 Ty::Dyn(predicates) | Ty::Opaque(predicates) => { 681 Ty::Dyn(predicates) | Ty::Opaque(predicates) => {
682 predicates.iter().find_map(|pred| match pred { 682 predicates.iter().find_map(|pred| match pred {
@@ -988,7 +988,10 @@ impl HirDisplay for Ty {
988 write!( 988 write!(
989 f, 989 f,
990 "{}", 990 "{}",
991 trait_ref.trait_.name(f.db).unwrap_or_else(Name::missing) 991 f.db.trait_data(trait_ref.trait_)
992 .name
993 .clone()
994 .unwrap_or_else(Name::missing)
992 )?; 995 )?;
993 if trait_ref.substs.len() > 1 { 996 if trait_ref.substs.len() > 1 {
994 write!(f, "<")?; 997 write!(f, "<")?;
@@ -1049,7 +1052,7 @@ impl TraitRef {
1049 } else { 1052 } else {
1050 write!(f, ": ")?; 1053 write!(f, ": ")?;
1051 } 1054 }
1052 write!(f, "{}", self.trait_.name(f.db).unwrap_or_else(Name::missing))?; 1055 write!(f, "{}", f.db.trait_data(self.trait_).name.clone().unwrap_or_else(Name::missing))?;
1053 if self.substs.len() > 1 { 1056 if self.substs.len() > 1 {
1054 write!(f, "<")?; 1057 write!(f, "<")?;
1055 f.write_joined(&self.substs[1..], ", ")?; 1058 f.write_joined(&self.substs[1..], ", ")?;