aboutsummaryrefslogtreecommitdiff
path: root/crates/hir_ty/src/infer/expr.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/hir_ty/src/infer/expr.rs')
-rw-r--r--crates/hir_ty/src/infer/expr.rs6
1 files changed, 3 insertions, 3 deletions
diff --git a/crates/hir_ty/src/infer/expr.rs b/crates/hir_ty/src/infer/expr.rs
index 79bbc5dab..24deff707 100644
--- a/crates/hir_ty/src/infer/expr.rs
+++ b/crates/hir_ty/src/infer/expr.rs
@@ -513,10 +513,10 @@ impl<'a> InferenceContext<'a> {
513 let inner_ty = self.infer_expr_inner(*expr, &Expectation::none()); 513 let inner_ty = self.infer_expr_inner(*expr, &Expectation::none());
514 if let Some(box_) = self.resolve_boxed_box() { 514 if let Some(box_) = self.resolve_boxed_box() {
515 let mut sb = 515 let mut sb =
516 Substitution::builder(generics(self.db.upcast(), box_.into()).len()); 516 Substitution::build_for_generics(&generics(self.db.upcast(), box_.into()));
517 sb = sb.push(inner_ty); 517 sb = sb.push(inner_ty);
518 match self.db.generic_defaults(box_.into()).as_ref() { 518 match self.db.generic_defaults(box_.into()).get(1) {
519 [_, alloc_ty, ..] if !alloc_ty.value.is_unknown() => { 519 Some(alloc_ty) if !alloc_ty.value.is_unknown() && sb.remaining() > 0 => {
520 sb = sb.push(alloc_ty.value.clone()); 520 sb = sb.push(alloc_ty.value.clone());
521 } 521 }
522 _ => (), 522 _ => (),