Skip to content

Commit 60e19ce

Browse files
committed
save-analysis: fix a bug with tuple sub-expressions
1 parent a835d74 commit 60e19ce

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

src/librustc_save_analysis/dump_visitor.rs

+9-1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
3030
use rustc::hir::def::Def;
3131
use rustc::hir::def_id::DefId;
32+
use rustc::hir::map::Node;
3233
use rustc::session::Session;
3334
use rustc::ty::{self, TyCtxt, ImplOrTraitItem, ImplOrTraitItemContainer};
3435

@@ -1297,7 +1298,14 @@ impl<'v, 'l, 'tcx: 'l, 'll, D: Dump +'ll> Visitor<'v> for DumpVisitor<'l, 'tcx,
12971298
ast::ExprKind::TupField(ref sub_ex, idx) => {
12981299
self.visit_expr(&sub_ex);
12991300

1300-
let hir_node = self.save_ctxt.tcx.map.expect_expr(sub_ex.id);
1301+
let hir_node = match self.save_ctxt.tcx.map.find(sub_ex.id) {
1302+
Some(Node::NodeExpr(expr)) => expr,
1303+
_ => {
1304+
debug!("Missing or weird node for sub-expression {} in {:?}",
1305+
sub_ex.id, ex);
1306+
return;
1307+
}
1308+
};
13011309
let ty = &self.tcx.expr_ty_adjusted(&hir_node).sty;
13021310
match *ty {
13031311
ty::TyStruct(def, _) => {

0 commit comments

Comments
 (0)