From: Nick Cameron Date: Wed, 23 Nov 2016 18:50:22 +0000 (+1300) Subject: Inspect def locally instead of using a method X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=b1f86fb7c30c6296a9c2e07d3a58795bca8c4cf4;p=rust.git Inspect def locally instead of using a method --- diff --git a/src/librustc/hir/def.rs b/src/librustc/hir/def.rs index ce04a7c897a..feefc43f401 100644 --- a/src/librustc/hir/def.rs +++ b/src/librustc/hir/def.rs @@ -85,15 +85,10 @@ pub fn new(def: Def) -> PathResolution { /// Get the definition, if fully resolved, otherwise panic. pub fn full_def(&self) -> Def { - self.maybe_full_def().unwrap_or_else(|| bug!("path not fully resolved: {:?}", self)) - } - - pub fn maybe_full_def(&self) -> Option { - if self.depth == 0 { - Some(self.base_def) - } else { - None + if self.depth != 0 { + bug!("path not fully resolved: {:?}", self); } + self.base_def } pub fn kind_name(&self) -> &'static str { diff --git a/src/librustc_save_analysis/lib.rs b/src/librustc_save_analysis/lib.rs index 4c59f5e8a83..a82a51a2e17 100644 --- a/src/librustc_save_analysis/lib.rs +++ b/src/librustc_save_analysis/lib.rs @@ -497,7 +497,12 @@ pub fn get_expr_data(&self, expr: &ast::Expr) -> Option { } pub fn get_path_data(&self, id: NodeId, path: &ast::Path) -> Option { - let def = option_try!(self.tcx.expect_resolution(id).maybe_full_def()); + let resolution = self.tcx.expect_resolution(id); + if resolution.depth != 0 { + return None; + } + let def = resolution.base_def; + let sub_span = self.span_utils.span_for_last_ident(path.span); filter!(self.span_utils, sub_span, path.span, None); match def {