From e45f476d5691a6a0d994eb6f777bbf291348f93e Mon Sep 17 00:00:00 2001 From: Florian Diebold Date: Mon, 21 Jan 2019 21:42:19 +0100 Subject: Fix panic trying to get substs on unknown type Fixes #585. --- crates/ra_hir/src/ty.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'crates/ra_hir/src/ty.rs') diff --git a/crates/ra_hir/src/ty.rs b/crates/ra_hir/src/ty.rs index c602450e1..e690ae158 100644 --- a/crates/ra_hir/src/ty.rs +++ b/crates/ra_hir/src/ty.rs @@ -1134,7 +1134,7 @@ impl<'a, D: HirDatabase> InferenceContext<'a, D> { self.unify(&ty, expected); - let substs = ty.substs().expect("adt should have substs"); + let substs = ty.substs().unwrap_or_else(Substs::empty); for (i, &subpat) in subpats.iter().enumerate() { let expected_ty = fields @@ -1155,7 +1155,7 @@ impl<'a, D: HirDatabase> InferenceContext<'a, D> { self.unify(&ty, expected); - let substs = ty.substs().expect("adt should have substs"); + let substs = ty.substs().unwrap_or_else(Substs::empty); for subpat in subpats { let matching_field = fields.iter().find(|field| field.name() == &subpat.name); @@ -1403,7 +1403,7 @@ impl<'a, D: HirDatabase> InferenceContext<'a, D> { spread, } => { let (ty, def_id) = self.resolve_variant(path.as_ref()); - let substs = ty.substs().expect("adt should have substs"); + let substs = ty.substs().unwrap_or_else(Substs::empty); for field in fields { let field_ty = if let Some(def_id) = def_id { self.db -- cgit v1.2.3