about summary refs log tree commit diff
path: root/src/librustc_save_analysis
diff options
context:
space:
mode:
authorMazdak Farrokhzad <twingoow@gmail.com>2020-03-08 11:51:04 +0100
committerGitHub <noreply@github.com>2020-03-08 11:51:04 +0100
commitf459d2ed99f446a95dff044b980582895bd8782a (patch)
tree3f2ad7be617da853a0cdb7393c92896ec10510a4 /src/librustc_save_analysis
parentf943349eafaa75a60c05b0c84dcdb771d0eae8c9 (diff)
parent5307edce6faa5c675dc57a1dd3b4fdcbf1ebdc7d (diff)
downloadrust-f459d2ed99f446a95dff044b980582895bd8782a.tar.gz
rust-f459d2ed99f446a95dff044b980582895bd8782a.zip
Rollup merge of #69422 - JohnTitor:remove-unwrap, r=Xanewok
Remove use of `unwrap()` from save-analysis

Fix #69409, fix #69416
Diffstat (limited to 'src/librustc_save_analysis')
-rw-r--r--src/librustc_save_analysis/lib.rs7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/librustc_save_analysis/lib.rs b/src/librustc_save_analysis/lib.rs
index ec251c224b6..88bfe7661e2 100644
--- a/src/librustc_save_analysis/lib.rs
+++ b/src/librustc_save_analysis/lib.rs
@@ -532,13 +532,16 @@ impl<'l, 'tcx> SaveContext<'l, 'tcx> {
                 match self.tables.expr_ty_adjusted(&hir_node).kind {
                     ty::Adt(def, _) if !def.is_enum() => {
                         let variant = &def.non_enum_variant();
-                        let index = self.tcx.find_field_index(ident, variant).unwrap();
                         filter!(self.span_utils, ident.span);
                         let span = self.span_from_span(ident.span);
                         return Some(Data::RefData(Ref {
                             kind: RefKind::Variable,
                             span,
-                            ref_id: id_from_def_id(variant.fields[index].did),
+                            ref_id: self
+                                .tcx
+                                .find_field_index(ident, variant)
+                                .map(|index| id_from_def_id(variant.fields[index].did))
+                                .unwrap_or_else(|| null_id()),
                         }));
                     }
                     ty::Tuple(..) => None,