@@ -346,7 +346,6 @@ impl<'self> TyVisitor for ReprVisitor<'self> {
346346 // Type no longer exists, vestigial function.
347347 fn visit_vec ( & mut self , _mtbl : uint , _inner : * TyDesc ) -> bool { fail ! ( ) ; }
348348
349-
350349 fn visit_unboxed_vec ( & mut self , mtbl : uint , inner : * TyDesc ) -> bool {
351350 do self . get :: < raw:: Vec < ( ) > > |this, b| {
352351 this. write_unboxed_vec_repr ( mtbl, b, inner) ;
@@ -413,11 +412,15 @@ impl<'self> TyVisitor for ReprVisitor<'self> {
413412 true
414413 }
415414
416- fn visit_enter_class ( & mut self , _n_fields : uint ,
415+ fn visit_enter_class ( & mut self , name : & str , n_fields : uint ,
417416 _sz : uint , _align : uint ) -> bool {
418- self . writer . write ( [ '{' as u8 ] ) ;
417+ self . writer . write ( name. as_bytes ( ) ) ;
418+ if n_fields != 0 {
419+ self . writer . write ( [ '{' as u8 ] ) ;
420+ }
419421 true
420422 }
423+
421424 fn visit_class_field ( & mut self , i : uint , name : & str ,
422425 mtbl : uint , inner : * TyDesc ) -> bool {
423426 if i != 0 {
@@ -429,9 +432,12 @@ impl<'self> TyVisitor for ReprVisitor<'self> {
429432 self . visit_inner ( inner) ;
430433 true
431434 }
432- fn visit_leave_class ( & mut self , _n_fields : uint ,
435+
436+ fn visit_leave_class ( & mut self , _name : & str , n_fields : uint ,
433437 _sz : uint , _align : uint ) -> bool {
434- self . writer . write ( [ '}' as u8 ] ) ;
438+ if n_fields != 0 {
439+ self . writer . write ( [ '}' as u8 ] ) ;
440+ }
435441 true
436442 }
437443
@@ -440,13 +446,15 @@ impl<'self> TyVisitor for ReprVisitor<'self> {
440446 self . writer . write ( [ '(' as u8 ] ) ;
441447 true
442448 }
449+
443450 fn visit_tup_field ( & mut self , i : uint , inner : * TyDesc ) -> bool {
444451 if i != 0 {
445452 self . writer . write ( ", " . as_bytes ( ) ) ;
446453 }
447454 self . visit_inner ( inner) ;
448455 true
449456 }
457+
450458 fn visit_leave_tup ( & mut self , _n_fields : uint ,
451459 _sz : uint , _align : uint ) -> bool {
452460 if _n_fields == 1 {
@@ -544,12 +552,15 @@ impl<'self> TyVisitor for ReprVisitor<'self> {
544552
545553 fn visit_enter_fn ( & mut self , _purity : uint , _proto : uint ,
546554 _n_inputs : uint , _retstyle : uint ) -> bool { true }
555+
547556 fn visit_fn_input ( & mut self , _i : uint , _mode : uint , _inner : * TyDesc ) -> bool {
548557 true
549558 }
559+
550560 fn visit_fn_output ( & mut self , _retstyle : uint , _inner : * TyDesc ) -> bool {
551561 true
552562 }
563+
553564 fn visit_leave_fn ( & mut self , _purity : uint , _proto : uint ,
554565 _n_inputs : uint , _retstyle : uint ) -> bool { true }
555566
@@ -628,11 +639,11 @@ fn test_repr() {
628639 exact_test ( & ( & [ "hi" , "there" ] ) ,
629640 "&[\" hi\" , \" there\" ]" ) ;
630641 exact_test ( & ( P { a : 10 , b : 1.234 } ) ,
631- "{a: 10, b: 1.234}" ) ;
642+ "repr::P {a: 10, b: 1.234}" ) ;
632643 exact_test ( & ( @P { a : 10 , b : 1.234 } ) ,
633- "@{a: 10, b: 1.234}" ) ;
644+ "@repr::P {a: 10, b: 1.234}" ) ;
634645 exact_test ( & ( ~P { a : 10 , b : 1.234 } ) ,
635- "~{a: 10, b: 1.234}" ) ;
646+ "~repr::P {a: 10, b: 1.234}" ) ;
636647 exact_test ( & ( 10u8 , ~"hello") ,
637648 "(10u8, ~\" hello\" )" ) ;
638649 exact_test ( & ( 10u16 , ~"hello") ,
@@ -643,5 +654,5 @@ fn test_repr() {
643654 "(10u64, ~\" hello\" )" ) ;
644655
645656 struct Foo ;
646- exact_test ( & ( ~[ Foo , Foo , Foo ] ) , "~[{}, {}, {} ]" ) ;
657+ exact_test ( & ( ~[ Foo , Foo ] ) , "~[repr::test_repr::Foo, repr::test_repr::Foo ]" ) ;
647658}
0 commit comments