]> git.lizzy.rs Git - rust.git/commitdiff
Add `delay_span_bug` and increase idiomaticity
authorvarkor <github@varkor.com>
Mon, 18 Dec 2017 18:38:35 +0000 (18:38 +0000)
committervarkor <github@varkor.com>
Mon, 18 Dec 2017 18:38:35 +0000 (18:38 +0000)
src/librustc/middle/expr_use_visitor.rs

index 0319e6b3d56aa2d5a68504c261f704aa7132db54..40f5a004e6e49cc82baa9ce0d51bcb91d4657f29 100644 (file)
@@ -558,9 +558,8 @@ fn walk_callee(&mut self, call: &hir::Expr, callee: &hir::Expr) {
             }
             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 @@ fn walk_callee(&mut self, call: &hir::Expr, callee: &hir::Expr) {
                         }
                         FnOnceOverloadedCall => self.consume_expr(callee),
                     }
+                } else {
+                    self.tcx().sess.delay_span_bug(call.span, "no type-dependent def for overloaded call");
                 }
             }
         }