diff options
Diffstat (limited to 'crates')
-rw-r--r-- | crates/ra_hir/src/code_model.rs | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/crates/ra_hir/src/code_model.rs b/crates/ra_hir/src/code_model.rs index cdbf475b3..840cfdfc8 100644 --- a/crates/ra_hir/src/code_model.rs +++ b/crates/ra_hir/src/code_model.rs | |||
@@ -990,10 +990,15 @@ impl TypeParam { | |||
990 | } | 990 | } |
991 | } | 991 | } |
992 | 992 | ||
993 | pub fn default(self, db: &dyn HirDatabase) -> Option<Ty> { | 993 | pub fn default(self, db: &dyn HirDatabase) -> Option<Type> { |
994 | let params = db.generic_defaults(self.id.parent); | 994 | let params = db.generic_defaults(self.id.parent); |
995 | let local_idx = hir_ty::param_idx(db, self.id)?; | 995 | let local_idx = hir_ty::param_idx(db, self.id)?; |
996 | params.get(local_idx).map(|d| d.clone()) | 996 | let resolver = self.id.parent.resolver(db.upcast()); |
997 | let environment = TraitEnvironment::lower(db, &resolver); | ||
998 | params.get(local_idx).cloned().map(|ty| Type { | ||
999 | krate: self.id.parent.module(db.upcast()).krate, | ||
1000 | ty: InEnvironment { value: ty, environment }, | ||
1001 | }) | ||
997 | } | 1002 | } |
998 | } | 1003 | } |
999 | 1004 | ||