summary refs log tree commit diff
path: root/src/librustc/middle
diff options
context:
space:
mode:
authorvarkor <github@varkor.com>2018-06-28 22:49:01 +0100
committervarkor <github@varkor.com>2018-06-28 22:52:44 +0100
commit4071adfcb5c9fa0d28f4ea096c19a3e8d4c802ff (patch)
treea4c68cc13ae73171a616f8f6216d0c5c3af4c6eb /src/librustc/middle
parent4fe88c05cd14fa182fd58cc68127f98aca77d1ff (diff)
downloadrust-4071adfcb5c9fa0d28f4ea096c19a3e8d4c802ff.tar.gz
rust-4071adfcb5c9fa0d28f4ea096c19a3e8d4c802ff.zip
Always check type_dependent_defs
Diffstat (limited to 'src/librustc/middle')
-rw-r--r--src/librustc/middle/dead.rs6
-rw-r--r--src/librustc/middle/reachable.rs2
2 files changed, 6 insertions, 2 deletions
diff --git a/src/librustc/middle/dead.rs b/src/librustc/middle/dead.rs
index 7ebc0d4a4de..f59cce4bd9e 100644
--- a/src/librustc/middle/dead.rs
+++ b/src/librustc/middle/dead.rs
@@ -96,7 +96,11 @@ impl<'a, 'tcx> MarkSymbolVisitor<'a, 'tcx> {
     }
 
     fn lookup_and_handle_method(&mut self, id: hir::HirId) {
-        self.check_def_id(self.tables.type_dependent_defs()[id].def_id());
+        if let Some(def) = self.tables.type_dependent_defs().get(id) {
+            self.check_def_id(def.def_id());
+        } else {
+            bug!("no type-dependent def for method");
+        }
     }
 
     fn handle_field_access(&mut self, lhs: &hir::Expr, node_id: ast::NodeId) {
diff --git a/src/librustc/middle/reachable.rs b/src/librustc/middle/reachable.rs
index 95829346ede..476f3f5799d 100644
--- a/src/librustc/middle/reachable.rs
+++ b/src/librustc/middle/reachable.rs
@@ -120,7 +120,7 @@ impl<'a, 'tcx> Visitor<'tcx> for ReachableContext<'a, 'tcx> {
                 Some(self.tables.qpath_def(qpath, expr.hir_id))
             }
             hir::ExprMethodCall(..) => {
-                Some(self.tables.type_dependent_defs()[expr.hir_id])
+                self.tables.type_dependent_defs().get(expr.hir_id).cloned()
             }
             _ => None
         };