repr: include mutability qualifier in visit_ptr

This commit is contained in:
Daniel Micay 2013-08-26 16:39:51 -04:00
parent c2bc59e086
commit ac4f0df120

View File

@ -282,12 +282,14 @@ impl TyVisitor for ReprVisitor {
self.write_escaped_slice(*s);
}
}
fn visit_estr_uniq(&self) -> bool {
do self.get::<~str> |s| {
self.writer.write_char('~');
self.write_escaped_slice(*s);
}
}
fn visit_estr_slice(&self) -> bool {
do self.get::<&str> |s| {
self.write_escaped_slice(*s);
@ -322,6 +324,7 @@ impl TyVisitor for ReprVisitor {
}
}
#[cfg(stage0)]
fn visit_ptr(&self, _mtbl: uint, _inner: *TyDesc) -> bool {
do self.get::<*c_void> |p| {
self.writer.write_str(fmt!("(0x%x as *())",
@ -329,6 +332,15 @@ impl TyVisitor for ReprVisitor {
}
}
#[cfg(not(stage0))]
fn visit_ptr(&self, mtbl: uint, _inner: *TyDesc) -> bool {
do self.get::<*c_void> |p| {
self.writer.write_str(fmt!("(0x%x as *", *p as uint));
self.write_mut_qualifier(mtbl);
self.writer.write_str("())");
}
}
fn visit_rptr(&self, mtbl: uint, inner: *TyDesc) -> bool {
self.writer.write_char('&');
self.write_mut_qualifier(mtbl);
@ -613,6 +625,9 @@ fn test_repr() {
exact_test(&(&mut x), "&mut 10");
exact_test(&(@mut [1, 2]), "@mut [1, 2]");
exact_test(&(0 as *()), "(0x0 as *())");
exact_test(&(0 as *mut ()), "(0x0 as *mut ())");
exact_test(&(1,), "(1,)");
exact_test(&(@[1,2,3,4,5,6,7,8]),
"@[1, 2, 3, 4, 5, 6, 7, 8]");