@@ -137,6 +137,24 @@ fn attribute_to_str(attr: ast::attribute) -> str {
137
137
be to_str ( attr, print_attribute) ;
138
138
}
139
139
140
+ fn variant_to_str ( var : ast:: variant ) -> str {
141
+ be to_str ( var, print_variant) ;
142
+ }
143
+
144
+ #[ test]
145
+ fn test_variant_to_str ( ) {
146
+ let var = ast_util:: respan ( ast_util:: dummy_sp ( ) , {
147
+ name: "principle_skinner" ,
148
+ attrs: [ ] ,
149
+ args: [ ] ,
150
+ id: 0 ,
151
+ disr_expr: none
152
+ } ) ;
153
+
154
+ let varstr = variant_to_str ( var) ;
155
+ assert varstr == "principle_skinner" ;
156
+ }
157
+
140
158
fn cbox ( s : ps , u : uint ) { s. boxes += [ pp:: consistent] ; pp:: cbox ( s. s , u) ; }
141
159
142
160
fn box ( s : ps , u : uint , b : pp:: breaks ) { s. boxes += [ b] ; pp:: box ( s. s , u, b) ; }
@@ -436,23 +454,7 @@ fn print_item(s: ps, &&item: @ast::item) {
436
454
maybe_print_comment ( s, v. span . lo ) ;
437
455
print_outer_attributes ( s, v. node . attrs ) ;
438
456
ibox ( s, indent_unit) ;
439
- word ( s. s , v. node . name ) ;
440
- if vec:: len ( v. node . args ) > 0 u {
441
- popen ( s) ;
442
- fn print_variant_arg ( s : ps , arg : ast:: variant_arg ) {
443
- print_type ( s, arg. ty ) ;
444
- }
445
- commasep ( s, consistent, v. node . args , print_variant_arg) ;
446
- pclose ( s) ;
447
- }
448
- alt v. node . disr_expr {
449
- some ( d) {
450
- space ( s. s ) ;
451
- word_space ( s, "=" ) ;
452
- print_expr ( s, d) ;
453
- }
454
- _ { }
455
- }
457
+ print_variant ( s, v) ;
456
458
word ( s. s , "," ) ;
457
459
end ( s) ;
458
460
maybe_print_trailing_comment ( s, v. span , none :: < uint > ) ;
@@ -510,6 +512,26 @@ fn print_item(s: ps, &&item: @ast::item) {
510
512
s. ann . post ( ann_node) ;
511
513
}
512
514
515
+ fn print_variant ( s : ps , v : ast:: variant ) {
516
+ word ( s. s , v. node . name ) ;
517
+ if vec:: len ( v. node . args ) > 0 u {
518
+ popen ( s) ;
519
+ fn print_variant_arg ( s : ps , arg : ast:: variant_arg ) {
520
+ print_type ( s, arg. ty ) ;
521
+ }
522
+ commasep ( s, consistent, v. node . args , print_variant_arg) ;
523
+ pclose ( s) ;
524
+ }
525
+ alt v. node . disr_expr {
526
+ some ( d) {
527
+ space ( s. s ) ;
528
+ word_space ( s, "=" ) ;
529
+ print_expr ( s, d) ;
530
+ }
531
+ _ { }
532
+ }
533
+ }
534
+
513
535
fn print_ty_method ( s : ps , m : ast:: ty_method ) {
514
536
hardbreak_if_not_bol ( s) ;
515
537
cbox ( s, indent_unit) ;
0 commit comments