diff options
| author | Esteban Küber <esteban@kuber.com.ar> | 2018-11-25 07:40:26 -0800 |
|---|---|---|
| committer | Alexander Regueiro <alexreg@me.com> | 2018-11-30 03:12:10 +0000 |
| commit | 027bf8b4de0176a526b7e5adaa63e65a87c37951 (patch) | |
| tree | b24013f1e01ebc5e554751beed1140e29f027b57 | |
| parent | c144dc07e35c1ef4a25bc321dce07565952121aa (diff) | |
| download | rust-027bf8b4de0176a526b7e5adaa63e65a87c37951.tar.gz rust-027bf8b4de0176a526b7e5adaa63e65a87c37951.zip | |
Use opt_def_id instead of having special branch
| -rw-r--r-- | src/librustc/middle/reachable.rs | 6 |
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 { |
