From af50e8d955caa0b689f3e5b02f0d8ff0302fd3e3 Mon Sep 17 00:00:00 2001 From: Lukas Wirth Date: Sun, 21 Mar 2021 18:18:25 +0100 Subject: Fix box pattern inference panic --- crates/hir_ty/src/infer/expr.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'crates/hir_ty/src/infer/expr.rs') 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> { let inner_ty = self.infer_expr_inner(*expr, &Expectation::none()); if let Some(box_) = self.resolve_boxed_box() { let mut sb = - Substitution::builder(generics(self.db.upcast(), box_.into()).len()); + Substitution::build_for_generics(&generics(self.db.upcast(), box_.into())); sb = sb.push(inner_ty); - match self.db.generic_defaults(box_.into()).as_ref() { - [_, alloc_ty, ..] if !alloc_ty.value.is_unknown() => { + match self.db.generic_defaults(box_.into()).get(1) { + Some(alloc_ty) if !alloc_ty.value.is_unknown() && sb.remaining() > 0 => { sb = sb.push(alloc_ty.value.clone()); } _ => (), -- cgit v1.2.3