aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/ty.rs
diff options
context:
space:
mode:
authorFlorian Diebold <[email protected]>2019-01-21 20:42:19 +0000
committerFlorian Diebold <[email protected]>2019-01-21 20:42:19 +0000
commite45f476d5691a6a0d994eb6f777bbf291348f93e (patch)
treee786aad9c46072c992c634466e834feb64c856fb /crates/ra_hir/src/ty.rs
parente0d8c86563b72e5414cf10fe16da5e88201447e2 (diff)
Fix panic trying to get substs on unknown type
Fixes #585.
Diffstat (limited to 'crates/ra_hir/src/ty.rs')
-rw-r--r--crates/ra_hir/src/ty.rs6
1 files changed, 3 insertions, 3 deletions
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> {
1134 1134
1135 self.unify(&ty, expected); 1135 self.unify(&ty, expected);
1136 1136
1137 let substs = ty.substs().expect("adt should have substs"); 1137 let substs = ty.substs().unwrap_or_else(Substs::empty);
1138 1138
1139 for (i, &subpat) in subpats.iter().enumerate() { 1139 for (i, &subpat) in subpats.iter().enumerate() {
1140 let expected_ty = fields 1140 let expected_ty = fields
@@ -1155,7 +1155,7 @@ impl<'a, D: HirDatabase> InferenceContext<'a, D> {
1155 1155
1156 self.unify(&ty, expected); 1156 self.unify(&ty, expected);
1157 1157
1158 let substs = ty.substs().expect("adt should have substs"); 1158 let substs = ty.substs().unwrap_or_else(Substs::empty);
1159 1159
1160 for subpat in subpats { 1160 for subpat in subpats {
1161 let matching_field = fields.iter().find(|field| field.name() == &subpat.name); 1161 let matching_field = fields.iter().find(|field| field.name() == &subpat.name);
@@ -1403,7 +1403,7 @@ impl<'a, D: HirDatabase> InferenceContext<'a, D> {
1403 spread, 1403 spread,
1404 } => { 1404 } => {
1405 let (ty, def_id) = self.resolve_variant(path.as_ref()); 1405 let (ty, def_id) = self.resolve_variant(path.as_ref());
1406 let substs = ty.substs().expect("adt should have substs"); 1406 let substs = ty.substs().unwrap_or_else(Substs::empty);
1407 for field in fields { 1407 for field in fields {
1408 let field_ty = if let Some(def_id) = def_id { 1408 let field_ty = if let Some(def_id) = def_id {
1409 self.db 1409 self.db