about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEsteban Küber <esteban@kuber.com.ar>2018-11-25 07:40:26 -0800
committerAlexander Regueiro <alexreg@me.com>2018-11-30 03:12:10 +0000
commit027bf8b4de0176a526b7e5adaa63e65a87c37951 (patch)
treeb24013f1e01ebc5e554751beed1140e29f027b57
parentc144dc07e35c1ef4a25bc321dce07565952121aa (diff)
downloadrust-027bf8b4de0176a526b7e5adaa63e65a87c37951.tar.gz
rust-027bf8b4de0176a526b7e5adaa63e65a87c37951.zip
Use opt_def_id instead of having special branch
-rw-r--r--src/librustc/middle/reachable.rs6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/librustc/middle/reachable.rs b/src/librustc/middle/reachable.rs
index cf81729bdab..ab0094df0e2 100644
--- a/src/librustc/middle/reachable.rs
+++ b/src/librustc/middle/reachable.rs
@@ -116,10 +116,10 @@ impl<'a, 'tcx> Visitor<'tcx> for ReachableContext<'a, 'tcx> {
             Some(Def::Local(node_id)) | Some(Def::Upvar(node_id, ..)) => {
                 self.reachable_symbols.insert(node_id);
             }
-            Some(Def::Err) => {}  // #56202: calling `def.def_id()` would be an error
             Some(def) => {
-                let def_id = def.def_id();
-                if let Some(node_id) = self.tcx.hir.as_local_node_id(def_id) {
+                if let Some((node_id, def_id)) = def.opt_def_id().and_then(|def_id| {
+                    self.tcx.hir.as_local_node_id(def_id).map(|node_id| (node_id, def_id))
+                }) {
                     if self.def_id_represents_local_inlined_item(def_id) {
                         self.worklist.push(node_id);
                     } else {