diff --git a/src/librustc/lib.rs b/src/librustc/lib.rs index bc24b54a5c7..fc2d68d7262 100644 --- a/src/librustc/lib.rs +++ b/src/librustc/lib.rs @@ -28,6 +28,7 @@ #![feature(box_syntax)] #![feature(collections)] #![feature(const_fn)] +#![feature(core_intrinsics)] #![feature(enumset)] #![feature(iter_arith)] #![feature(libc)] diff --git a/src/librustc/mir/transform.rs b/src/librustc/mir/transform.rs index 1480ecfc50e..f17984d3804 100644 --- a/src/librustc/mir/transform.rs +++ b/src/librustc/mir/transform.rs @@ -76,7 +76,9 @@ pub trait Pass { fn dep_node(&self, def_id: DefId) -> DepNode { DepNode::MirPass(def_id) } - fn name(&self) -> &str; + fn name(&self) -> &str { + unsafe { ::std::intrinsics::type_name::() } + } fn disambiguator<'a>(&'a self) -> Option> { None } } diff --git a/src/librustc_borrowck/borrowck/mir/elaborate_drops.rs b/src/librustc_borrowck/borrowck/mir/elaborate_drops.rs index 593a997bed5..362d6ce2aca 100644 --- a/src/librustc_borrowck/borrowck/mir/elaborate_drops.rs +++ b/src/librustc_borrowck/borrowck/mir/elaborate_drops.rs @@ -69,9 +69,7 @@ impl<'tcx> MirPass<'tcx> for ElaborateDrops { } } -impl Pass for ElaborateDrops { - fn name(&self) -> &str { "elaborate-drops" } -} +impl Pass for ElaborateDrops {} struct InitializationData { live: IdxSetBuf, diff --git a/src/librustc_driver/driver.rs b/src/librustc_driver/driver.rs index 260f8691349..ce132a04870 100644 --- a/src/librustc_driver/driver.rs +++ b/src/librustc_driver/driver.rs @@ -1059,7 +1059,7 @@ pub fn phase_4_translate_to_llvm<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, passes.push_pass(box mir::transform::simplify_cfg::SimplifyCfg::new("elaborate-drops")); passes.push_pass(box mir::transform::add_call_guards::AddCallGuards); - passes.push_pass(box mir::transform::dump_mir::Marker("pre-trans")); + passes.push_pass(box mir::transform::dump_mir::Marker("PreTrans")); passes.run_passes(tcx, &mut mir_map); }); diff --git a/src/librustc_mir/transform/add_call_guards.rs b/src/librustc_mir/transform/add_call_guards.rs index 15cfa8046ed..63e975128c7 100644 --- a/src/librustc_mir/transform/add_call_guards.rs +++ b/src/librustc_mir/transform/add_call_guards.rs @@ -82,6 +82,4 @@ impl<'tcx> MirPass<'tcx> for AddCallGuards { } } -impl Pass for AddCallGuards { - fn name(&self) -> &str { "add-call-guards" } -} +impl Pass for AddCallGuards {} diff --git a/src/librustc_mir/transform/dump_mir.rs b/src/librustc_mir/transform/dump_mir.rs index 941229d2c02..642adeee5cd 100644 --- a/src/librustc_mir/transform/dump_mir.rs +++ b/src/librustc_mir/transform/dump_mir.rs @@ -70,6 +70,4 @@ impl<'tcx> MirPassHook<'tcx> for DumpMir { } } -impl<'b> Pass for DumpMir { - fn name(&self) -> &str { "dump-mir" } -} +impl<'b> Pass for DumpMir {} diff --git a/src/librustc_mir/transform/erase_regions.rs b/src/librustc_mir/transform/erase_regions.rs index 4c71fe98ec2..485ca3ea84a 100644 --- a/src/librustc_mir/transform/erase_regions.rs +++ b/src/librustc_mir/transform/erase_regions.rs @@ -43,9 +43,7 @@ impl<'a, 'tcx> MutVisitor<'tcx> for EraseRegionsVisitor<'a, 'tcx> { pub struct EraseRegions; -impl Pass for EraseRegions { - fn name(&self) -> &str { "erase-regions" } -} +impl Pass for EraseRegions {} impl<'tcx> MirPass<'tcx> for EraseRegions { fn run_pass<'a>(&mut self, tcx: TyCtxt<'a, 'tcx, 'tcx>, diff --git a/src/librustc_mir/transform/no_landing_pads.rs b/src/librustc_mir/transform/no_landing_pads.rs index 610208de19a..818f060ed44 100644 --- a/src/librustc_mir/transform/no_landing_pads.rs +++ b/src/librustc_mir/transform/no_landing_pads.rs @@ -50,6 +50,4 @@ impl<'tcx> MirPass<'tcx> for NoLandingPads { } } -impl Pass for NoLandingPads { - fn name(&self) -> &str { "no-landing-pads" } -} +impl Pass for NoLandingPads {} diff --git a/src/librustc_mir/transform/qualify_consts.rs b/src/librustc_mir/transform/qualify_consts.rs index 9f95342a68b..784ddc1ede4 100644 --- a/src/librustc_mir/transform/qualify_consts.rs +++ b/src/librustc_mir/transform/qualify_consts.rs @@ -906,9 +906,7 @@ fn qualify_const_item_cached<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, pub struct QualifyAndPromoteConstants; -impl Pass for QualifyAndPromoteConstants { - fn name(&self) -> &str { "qualify-consts" } -} +impl Pass for QualifyAndPromoteConstants {} impl<'tcx> MirMapPass<'tcx> for QualifyAndPromoteConstants { fn run_pass<'a>(&mut self, diff --git a/src/librustc_mir/transform/simplify_branches.rs b/src/librustc_mir/transform/simplify_branches.rs index 57f9672e2a1..f93de6ca382 100644 --- a/src/librustc_mir/transform/simplify_branches.rs +++ b/src/librustc_mir/transform/simplify_branches.rs @@ -57,7 +57,6 @@ impl<'l, 'tcx> MirPass<'tcx> for SimplifyBranches<'l> { } impl<'l> Pass for SimplifyBranches<'l> { - fn name(&self) -> &str { "simplify-branches" } fn disambiguator<'a>(&'a self) -> Option> { Some(Box::new(self.label)) } diff --git a/src/librustc_mir/transform/simplify_cfg.rs b/src/librustc_mir/transform/simplify_cfg.rs index 21faf095b74..8bbcc3fe2d7 100644 --- a/src/librustc_mir/transform/simplify_cfg.rs +++ b/src/librustc_mir/transform/simplify_cfg.rs @@ -59,7 +59,6 @@ impl<'l, 'tcx> MirPass<'tcx> for SimplifyCfg<'l> { } impl<'l> Pass for SimplifyCfg<'l> { - fn name(&self) -> &str { "simplify-cfg" } fn disambiguator<'a>(&'a self) -> Option> { Some(Box::new(self.label)) } diff --git a/src/librustc_mir/transform/type_check.rs b/src/librustc_mir/transform/type_check.rs index 60698a184da..e4398fcab31 100644 --- a/src/librustc_mir/transform/type_check.rs +++ b/src/librustc_mir/transform/type_check.rs @@ -717,6 +717,4 @@ impl Pass for TypeckMir { fn dep_node(&self, def_id: DefId) -> DepNode { DepNode::MirTypeck(def_id) } - - fn name(&self) -> &str { "typeck-mir" } } diff --git a/src/test/run-pass-fulldeps/auxiliary/dummy_mir_pass.rs b/src/test/run-pass-fulldeps/auxiliary/dummy_mir_pass.rs index b7d49dbb83c..604933d40a1 100644 --- a/src/test/run-pass-fulldeps/auxiliary/dummy_mir_pass.rs +++ b/src/test/run-pass-fulldeps/auxiliary/dummy_mir_pass.rs @@ -28,9 +28,7 @@ use rustc_plugin::Registry; struct Pass; -impl transform::Pass for Pass { - fn name(&self) -> &str { "dummy-mir-pass" } -} +impl transform::Pass for Pass {} impl<'tcx> MirPass<'tcx> for Pass { fn run_pass<'a>(&mut self, _: TyCtxt<'a, 'tcx, 'tcx>,