diff options
| author | varkor <github@varkor.com> | 2017-12-18 18:38:35 +0000 |
|---|---|---|
| committer | varkor <github@varkor.com> | 2017-12-18 18:38:35 +0000 |
| commit | e65c741637cd7971fa41e05989bc922ed20dbf63 (patch) | |
| tree | 5862e0339246ec40773bfde44f6d2c4644a7f4b9 | |
| parent | 55b0f148902dd3ca07cbb4ca4262c00b8b414dda (diff) | |
| download | rust-e65c741637cd7971fa41e05989bc922ed20dbf63.tar.gz rust-e65c741637cd7971fa41e05989bc922ed20dbf63.zip | |
Add `delay_span_bug` and increase idiomaticity
| -rw-r--r-- | src/librustc/middle/expr_use_visitor.rs | 7 |
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"); } } } |
