aboutsummaryrefslogtreecommitdiff
path: root/crates/hir_ty/src/infer
diff options
context:
space:
mode:
Diffstat (limited to 'crates/hir_ty/src/infer')
-rw-r--r--crates/hir_ty/src/infer/expr.rs6
1 files changed, 6 insertions, 0 deletions
diff --git a/crates/hir_ty/src/infer/expr.rs b/crates/hir_ty/src/infer/expr.rs
index b75d32b85..23d4ac8ef 100644
--- a/crates/hir_ty/src/infer/expr.rs
+++ b/crates/hir_ty/src/infer/expr.rs
@@ -487,6 +487,12 @@ impl<'a> InferenceContext<'a> {
487 if let Some(box_) = self.resolve_boxed_box() { 487 if let Some(box_) = self.resolve_boxed_box() {
488 let mut sb = Substs::builder(generics(self.db.upcast(), box_.into()).len()); 488 let mut sb = Substs::builder(generics(self.db.upcast(), box_.into()).len());
489 sb = sb.push(inner_ty); 489 sb = sb.push(inner_ty);
490 match self.db.generic_defaults(box_.into()).as_ref() {
491 [_, alloc_ty, ..] if !alloc_ty.value.is_unknown() => {
492 sb = sb.push(alloc_ty.value.clone());
493 }
494 _ => (),
495 }
490 sb = sb.fill(repeat_with(|| self.table.new_type_var())); 496 sb = sb.fill(repeat_with(|| self.table.new_type_var()));
491 Ty::Adt(box_, sb.build()) 497 Ty::Adt(box_, sb.build())
492 } else { 498 } else {