about summary refs log tree commit diff
path: root/src/librustc_save_analysis
diff options
context:
space:
mode:
authorNick Cameron <ncameron@mozilla.com>2018-09-12 14:05:08 +1200
committerNick Cameron <ncameron@mozilla.com>2018-10-26 09:48:44 +1300
commit8ac32726100c58ca66f3da6e35b423c17fc96a4f (patch)
tree716049582ec1f2186c7bd1cca5b7a43d1ddd1527 /src/librustc_save_analysis
parentcdcbdfdf0ad46f534f45997fdd42409492ac000c (diff)
downloadrust-8ac32726100c58ca66f3da6e35b423c17fc96a4f.tar.gz
rust-8ac32726100c58ca66f3da6e35b423c17fc96a4f.zip
save-analysis: handle missing field names
FIxes https://github.com/rust-lang-nursery/rls/issues/1031
Diffstat (limited to 'src/librustc_save_analysis')
-rw-r--r--src/librustc_save_analysis/lib.rs13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/librustc_save_analysis/lib.rs b/src/librustc_save_analysis/lib.rs
index 23eab3e15f6..9e0233149cc 100644
--- a/src/librustc_save_analysis/lib.rs
+++ b/src/librustc_save_analysis/lib.rs
@@ -809,13 +809,14 @@ impl<'l, 'tcx: 'l> SaveContext<'l, 'tcx> {
         field_ref: &ast::Field,
         variant: &ty::VariantDef,
     ) -> Option<Ref> {
-        let index = self.tcx.find_field_index(field_ref.ident, variant).unwrap();
         filter!(self.span_utils, field_ref.ident.span);
-        let span = self.span_from_span(field_ref.ident.span);
-        Some(Ref {
-            kind: RefKind::Variable,
-            span,
-            ref_id: id_from_def_id(variant.fields[index].did),
+        self.tcx.find_field_index(field_ref.ident, variant).map(|index| {
+            let span = self.span_from_span(field_ref.ident.span);
+            Ref {
+                kind: RefKind::Variable,
+                span,
+                ref_id: id_from_def_id(variant.fields[index].did),
+            }
         })
     }