From 9884ff1dfbcb776c909ba575a90736326416fa22 Mon Sep 17 00:00:00 2001 From: Florian Hahn Date: Thu, 21 Jan 2016 22:49:26 +0100 Subject: [PATCH] Add Debug impl and erase region for TypedConstVal --- src/librustc/mir/repr.rs | 9 ++++++++- src/librustc_mir/transform/erase_regions.rs | 3 ++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/librustc/mir/repr.rs b/src/librustc/mir/repr.rs index ed6b174e463..3e71d3ba9f3 100644 --- a/src/librustc/mir/repr.rs +++ b/src/librustc/mir/repr.rs @@ -891,13 +891,20 @@ pub struct Constant<'tcx> { pub literal: Literal<'tcx>, } -#[derive(Clone, Debug, RustcEncodable, RustcDecodable)] +#[derive(Clone, RustcEncodable, RustcDecodable)] pub struct TypedConstVal<'tcx> { pub ty: Ty<'tcx>, pub span: Span, pub value: ConstVal } +impl<'tcx> Debug for TypedConstVal<'tcx> { + fn fmt(&self, fmt: &mut Formatter) -> fmt::Result { + try!(write!(fmt, "const ")); + fmt_const_val(fmt, &self.value) + } +} + #[derive(Clone, Copy, Debug, PartialEq, RustcEncodable, RustcDecodable)] pub enum ItemKind { Constant, diff --git a/src/librustc_mir/transform/erase_regions.rs b/src/librustc_mir/transform/erase_regions.rs index a964f9ccf0c..66604786d46 100644 --- a/src/librustc_mir/transform/erase_regions.rs +++ b/src/librustc_mir/transform/erase_regions.rs @@ -143,8 +143,9 @@ impl<'a, 'tcx> EraseRegions<'a, 'tcx> { Rvalue::Use(ref mut operand) => { self.erase_regions_operand(operand) } - Rvalue::Repeat(ref mut operand, _) => { + Rvalue::Repeat(ref mut operand, ref mut value) => { self.erase_regions_operand(operand); + value.ty = self.tcx.erase_regions(&value.ty); } Rvalue::Ref(ref mut region, _, ref mut lvalue) => { *region = ty::ReStatic;