Skip to content

Commit 36ad34d

Browse files
committed
save-analysis: get tables directly, accomodating them being missing
Fixes an ICE when running with save-analsysis after an error
1 parent 491b978 commit 36ad34d

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

src/librustc_save_analysis/dump_visitor.rs

+9-4
Original file line numberDiff line numberDiff line change
@@ -111,11 +111,16 @@ impl<'l, 'tcx: 'l, 'll, D: Dump + 'll> DumpVisitor<'l, 'tcx, 'll, D> {
111111
fn nest_tables<F>(&mut self, item_id: NodeId, f: F)
112112
where F: FnOnce(&mut DumpVisitor<'l, 'tcx, 'll, D>)
113113
{
114-
let old_tables = self.save_ctxt.tables;
115114
let item_def_id = self.tcx.hir.local_def_id(item_id);
116-
self.save_ctxt.tables = self.tcx.item_tables(item_def_id);
117-
f(self);
118-
self.save_ctxt.tables = old_tables;
115+
match self.tcx.tables.borrow().get(&item_def_id) {
116+
Some(tables) => {
117+
let old_tables = self.save_ctxt.tables;
118+
self.save_ctxt.tables = tables;
119+
f(self);
120+
self.save_ctxt.tables = old_tables;
121+
}
122+
None => f(self),
123+
}
119124
}
120125

121126
pub fn dump_crate_info(&mut self, name: &str, krate: &ast::Crate) {

0 commit comments

Comments
 (0)