about summary refs log tree commit diff
path: root/src/librustc/infer
diff options
context:
space:
mode:
authorEsteban Küber <esteban@kuber.com.ar>2019-12-11 15:33:45 -0800
committerEsteban Küber <esteban@kuber.com.ar>2019-12-11 15:33:45 -0800
commit45550ef2ff47020ab8af5feb08669c8c4ab879e9 (patch)
treeb248b1c949177080e1ba4ac64c6d78108ca49292 /src/librustc/infer
parent94ab9ec36bd3401b3185aff7b623ff0317b96356 (diff)
downloadrust-45550ef2ff47020ab8af5feb08669c8c4ab879e9.tar.gz
rust-45550ef2ff47020ab8af5feb08669c8c4ab879e9.zip
Reuse existing HirId → DefId table
Diffstat (limited to 'src/librustc/infer')
-rw-r--r--src/librustc/infer/error_reporting/need_type_info.rs9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/librustc/infer/error_reporting/need_type_info.rs b/src/librustc/infer/error_reporting/need_type_info.rs
index 487736dee30..4baab0492a5 100644
--- a/src/librustc/infer/error_reporting/need_type_info.rs
+++ b/src/librustc/infer/error_reporting/need_type_info.rs
@@ -1,4 +1,4 @@
-use crate::hir::def::Namespace;
+use crate::hir::def::{DefKind, Namespace};
 use crate::hir::{self, Body, FunctionRetTy, Expr, ExprKind, HirId, Local, Pat};
 use crate::hir::intravisit::{self, Visitor, NestedVisitorMap};
 use crate::infer::InferCtxt;
@@ -447,9 +447,8 @@ impl<'a, 'tcx> InferCtxt<'a, 'tcx> {
             &segment.args,
         ) {
             let borrow = tables.borrow();
-            let method_defs = borrow.node_method_def_id();
-            if let Some(did) = method_defs.get(e.hir_id) {
-                let generics = self.tcx.generics_of(*did);
+            if let Some((DefKind::Method, did)) = borrow.type_dependent_def(e.hir_id) {
+                let generics = self.tcx.generics_of(did);
                 if !generics.params.is_empty() {
                     err.span_suggestion(
                         segment.ident.span,
@@ -468,7 +467,7 @@ impl<'a, 'tcx> InferCtxt<'a, 'tcx> {
                         Applicability::HasPlaceholders,
                     );
                 } else {
-                    let sig = self.tcx.fn_sig(*did);
+                    let sig = self.tcx.fn_sig(did);
                     err.span_label(e.span, &format!(
                         "this method call resolves to `{:?}`",
                         sig.output().skip_binder(),