@@ -282,12 +282,14 @@ impl TyVisitor for ReprVisitor {
282
282
self . write_escaped_slice ( * s) ;
283
283
}
284
284
}
285
+
285
286
fn visit_estr_uniq ( & self ) -> bool {
286
287
do self . get :: < ~str > |s| {
287
288
self . writer . write_char ( '~' ) ;
288
289
self . write_escaped_slice ( * s) ;
289
290
}
290
291
}
292
+
291
293
fn visit_estr_slice ( & self ) -> bool {
292
294
do self . get :: < & str > |s| {
293
295
self . write_escaped_slice ( * s) ;
@@ -322,13 +324,23 @@ impl TyVisitor for ReprVisitor {
322
324
}
323
325
}
324
326
327
+ #[ cfg( stage0) ]
325
328
fn visit_ptr ( & self , _mtbl : uint , _inner : * TyDesc ) -> bool {
326
329
do self . get :: < * c_void > |p| {
327
330
self . writer . write_str ( fmt ! ( "(0x%x as *())" ,
328
331
* p as uint) ) ;
329
332
}
330
333
}
331
334
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
+
332
344
fn visit_rptr ( & self , mtbl : uint , inner : * TyDesc ) -> bool {
333
345
self . writer . write_char ( '&' ) ;
334
346
self . write_mut_qualifier ( mtbl) ;
@@ -613,6 +625,9 @@ fn test_repr() {
613
625
exact_test ( & ( & mut x) , "&mut 10" ) ;
614
626
exact_test ( & ( @mut [ 1 , 2 ] ) , "@mut [1, 2]" ) ;
615
627
628
+ exact_test ( & ( 0 as * ( ) ) , "(0x0 as *())" ) ;
629
+ exact_test ( & ( 0 as * mut ( ) ) , "(0x0 as *mut ())" ) ;
630
+
616
631
exact_test ( & ( 1 , ) , "(1,)" ) ;
617
632
exact_test ( & ( @[ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ] ) ,
618
633
"@[1, 2, 3, 4, 5, 6, 7, 8]" ) ;
0 commit comments