]> git.lizzy.rs Git - rust.git/commitdiff
Don't use write_mir_pretty for non local mir
authorbjorn3 <bjorn3@users.noreply.github.com>
Sat, 8 Sep 2018 15:23:03 +0000 (17:23 +0200)
committerbjorn3 <bjorn3@users.noreply.github.com>
Sat, 8 Sep 2018 15:23:03 +0000 (17:23 +0200)
src/base.rs

index 7293649d05277e0c0c45f8a24aa4d15abfe627c7..dd0aaeaaedb7ac708a565c77e969273d4a215fe7 100644 (file)
@@ -23,17 +23,20 @@ pub fn trans_mono_item<'a, 'tcx: 'a>(
                 match inst.def {
                     InstanceDef::Item(_)
                     | InstanceDef::DropGlue(_, _)
-                    | InstanceDef::Virtual(_, _) => {
+                    | InstanceDef::Virtual(_, _) if inst.def_id().krate == LOCAL_CRATE => {
                         let mut mir = ::std::io::Cursor::new(Vec::new());
                         ::rustc_mir::util::write_mir_pretty(tcx, Some(inst.def_id()), &mut mir)
                             .unwrap();
                         String::from_utf8(mir.into_inner()).unwrap()
                     }
-                    InstanceDef::FnPtrShim(_, _)
+                    InstanceDef::Item(_)
+                    | InstanceDef::DropGlue(_, _)
+                    | InstanceDef::Virtual(_, _)
+                    | InstanceDef::FnPtrShim(_, _)
                     | InstanceDef::ClosureOnceShim { .. }
                     | InstanceDef::CloneShim(_, _) => {
-                        // FIXME fix write_mir_pretty for these instances
-                        format!("{:#?}", tcx.instance_mir(inst.def))
+                       // FIXME fix write_mir_pretty for these instances
+                       format!("{:#?}", tcx.instance_mir(inst.def))
                     }
                     InstanceDef::Intrinsic(_) => bug!("tried to codegen intrinsic"),
                 }