diff options
Diffstat (limited to 'crates/ra_hir/src/ty.rs')
-rw-r--r-- | crates/ra_hir/src/ty.rs | 13 |
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 | ||
27 | use crate::{ | 27 | use 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 | }; |
31 | use display::{HirDisplay, HirFormatter}; | 31 | use 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)] |
446 | pub struct TraitRef { | 446 | pub 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..], ", ")?; |