about summary refs log tree commit diff
diff options
context:
space:
mode:
authorvarkor <github@varkor.com>2017-12-18 18:38:35 +0000
committervarkor <github@varkor.com>2017-12-18 18:38:35 +0000
commite65c741637cd7971fa41e05989bc922ed20dbf63 (patch)
tree5862e0339246ec40773bfde44f6d2c4644a7f4b9
parent55b0f148902dd3ca07cbb4ca4262c00b8b414dda (diff)
downloadrust-e65c741637cd7971fa41e05989bc922ed20dbf63.tar.gz
rust-e65c741637cd7971fa41e05989bc922ed20dbf63.zip
Add `delay_span_bug` and increase idiomaticity
-rw-r--r--src/librustc/middle/expr_use_visitor.rs7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/librustc/middle/expr_use_visitor.rs b/src/librustc/middle/expr_use_visitor.rs
index 0319e6b3d56..40f5a004e6e 100644
--- a/src/librustc/middle/expr_use_visitor.rs
+++ b/src/librustc/middle/expr_use_visitor.rs
@@ -558,9 +558,8 @@ impl<'a, 'gcx, 'tcx> ExprUseVisitor<'a, 'gcx, 'tcx> {
             }
             ty::TyError => { }
             _ => {
-                let type_dependent_defs = self.mc.tables.type_dependent_defs();
-                if type_dependent_defs.contains_key(call.hir_id) {
-                    let def_id = type_dependent_defs[call.hir_id].def_id();
+                if let Some(def) = self.mc.tables.type_dependent_defs().get(call.hir_id) {
+                    let def_id = def.def_id();
                     let call_scope = region::Scope::Node(call.hir_id.local_id);
                     match OverloadedCallType::from_method_id(self.tcx(), def_id) {
                         FnMutOverloadedCall => {
@@ -579,6 +578,8 @@ impl<'a, 'gcx, 'tcx> ExprUseVisitor<'a, 'gcx, 'tcx> {
                         }
                         FnOnceOverloadedCall => self.consume_expr(callee),
                     }
+                } else {
+                    self.tcx().sess.delay_span_bug(call.span, "no type-dependent def for overloaded call");
                 }
             }
         }