@@ -282,12 +282,14 @@ impl TyVisitor for ReprVisitor {
282282 self . write_escaped_slice ( * s) ;
283283 }
284284 }
285+
285286 fn visit_estr_uniq ( & self ) -> bool {
286287 do self . get :: < ~str > |s| {
287288 self . writer . write_char ( '~' ) ;
288289 self . write_escaped_slice ( * s) ;
289290 }
290291 }
292+
291293 fn visit_estr_slice ( & self ) -> bool {
292294 do self . get :: < & str > |s| {
293295 self . write_escaped_slice ( * s) ;
@@ -322,13 +324,23 @@ impl TyVisitor for ReprVisitor {
322324 }
323325 }
324326
327+ #[ cfg( stage0) ]
325328 fn visit_ptr ( & self , _mtbl : uint , _inner : * TyDesc ) -> bool {
326329 do self . get :: < * c_void > |p| {
327330 self . writer . write_str ( fmt ! ( "(0x%x as *())" ,
328331 * p as uint) ) ;
329332 }
330333 }
331334
335+ #[ cfg( not( stage0) ) ]
336+ fn visit_ptr ( & self , mtbl : uint , _inner : * TyDesc ) -> bool {
337+ do self . get :: < * c_void > |p| {
338+ self . writer . write_str ( fmt ! ( "(0x%x as *" , * p as uint) ) ;
339+ self . write_mut_qualifier ( mtbl) ;
340+ self . writer . write_str ( "())" ) ;
341+ }
342+ }
343+
332344 fn visit_rptr ( & self , mtbl : uint , inner : * TyDesc ) -> bool {
333345 self . writer . write_char ( '&' ) ;
334346 self . write_mut_qualifier ( mtbl) ;
@@ -613,6 +625,9 @@ fn test_repr() {
613625 exact_test ( & ( & mut x) , "&mut 10" ) ;
614626 exact_test ( & ( @mut [ 1 , 2 ] ) , "@mut [1, 2]" ) ;
615627
628+ exact_test ( & ( 0 as * ( ) ) , "(0x0 as *())" ) ;
629+ exact_test ( & ( 0 as * mut ( ) ) , "(0x0 as *mut ())" ) ;
630+
616631 exact_test ( & ( 1 , ) , "(1,)" ) ;
617632 exact_test ( & ( @[ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ] ) ,
618633 "@[1, 2, 3, 4, 5, 6, 7, 8]" ) ;
0 commit comments