]> git.lizzy.rs Git - rust.git/commitdiff
validator: print MIR instance on failure
authorJonas Schievink <jonasschievink@gmail.com>
Sun, 14 Jun 2020 18:22:13 +0000 (20:22 +0200)
committerJonas Schievink <jonasschievink@gmail.com>
Sun, 14 Jun 2020 21:46:15 +0000 (23:46 +0200)
src/librustc_mir/transform/validate.rs

index 8150c328316cbb3d9faceeb47064f5bb288d1f52..625f40cd79206313d3f696abb9f494542abc5c79 100644 (file)
@@ -9,7 +9,6 @@
     },
     ty::{self, ParamEnv, TyCtxt},
 };
-use rustc_span::def_id::DefId;
 
 #[derive(Copy, Clone, Debug)]
 enum EdgeKind {
@@ -24,15 +23,14 @@ pub struct Validator {
 
 impl<'tcx> MirPass<'tcx> for Validator {
     fn run_pass(&self, tcx: TyCtxt<'tcx>, source: MirSource<'tcx>, body: &mut Body<'tcx>) {
-        let def_id = source.def_id();
-        let param_env = tcx.param_env(def_id);
-        TypeChecker { when: &self.when, def_id, body, tcx, param_env }.visit_body(body);
+        let param_env = tcx.param_env(source.def_id());
+        TypeChecker { when: &self.when, source, body, tcx, param_env }.visit_body(body);
     }
 }
 
 struct TypeChecker<'a, 'tcx> {
     when: &'a str,
-    def_id: DefId,
+    source: MirSource<'tcx>,
     body: &'a Body<'tcx>,
     tcx: TyCtxt<'tcx>,
     param_env: ParamEnv<'tcx>,
@@ -47,7 +45,7 @@ fn fail(&self, location: Location, msg: impl AsRef<str>) {
             span,
             &format!(
                 "broken MIR in {:?} ({}) at {:?}:\n{}",
-                self.def_id,
+                self.source.instance,
                 self.when,
                 location,
                 msg.as_ref()