diff options
| author | Nick Cameron <ncameron@mozilla.com> | 2018-09-12 14:05:08 +1200 |
|---|---|---|
| committer | Nick Cameron <ncameron@mozilla.com> | 2018-10-26 09:48:44 +1300 |
| commit | 8ac32726100c58ca66f3da6e35b423c17fc96a4f (patch) | |
| tree | 716049582ec1f2186c7bd1cca5b7a43d1ddd1527 /src/librustc_save_analysis | |
| parent | cdcbdfdf0ad46f534f45997fdd42409492ac000c (diff) | |
| download | rust-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.rs | 13 |
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), + } }) } |
