@@ -437,30 +437,20 @@ impl <'l, 'tcx> DumpCsvVisitor<'l, 'tcx> {
437
437
438
438
fn process_struct_field_def ( & mut self ,
439
439
field : & ast:: StructField ,
440
- qualname : & str ,
441
- scope_id : NodeId ) {
442
- match field. node . kind {
443
- ast:: NamedField ( ident, _) => {
444
- let name = get_ident ( ident) ;
445
- let qualname = format ! ( "{}::{}" , qualname, name) ;
446
- let typ =
447
- ppaux:: ty_to_string (
448
- & self . analysis . ty_cx ,
449
- * self . analysis . ty_cx . node_types ( ) . get ( & field. node . id ) . unwrap ( ) ) ;
450
- match self . span . sub_span_before_token ( field. span , token:: Colon ) {
451
- Some ( sub_span) => self . fmt . field_str ( field. span ,
452
- Some ( sub_span) ,
453
- field. node . id ,
454
- & name,
455
- & qualname,
456
- & typ,
457
- scope_id) ,
458
- None => self . sess . span_bug ( field. span ,
459
- & format ! ( "Could not find sub-span for field {}" ,
460
- qualname) ) ,
461
- }
462
- } ,
463
- _ => ( ) ,
440
+ parent_id : NodeId ) {
441
+ let field_data = self . save_ctxt . get_field_data ( field, parent_id) ;
442
+ if let Some ( field_data) = field_data {
443
+ if let super :: Data :: VariableData ( field_data) = field_data {
444
+ self . fmt . field_str ( field. span ,
445
+ Some ( field_data. span ) ,
446
+ field_data. id ,
447
+ & field_data. name ,
448
+ & field_data. qualname ,
449
+ & field_data. type_value ,
450
+ field_data. scope ) ;
451
+ } else {
452
+ self . sess . span_bug ( field. span , "expected VariableData" ) ;
453
+ }
464
454
}
465
455
}
466
456
@@ -593,8 +583,8 @@ impl <'l, 'tcx> DumpCsvVisitor<'l, 'tcx> {
593
583
594
584
// fields
595
585
for field in & def. fields {
596
- self . process_struct_field_def ( field, & qualname , item. id ) ;
597
- self . visit_ty ( & * field. node . ty ) ;
586
+ self . process_struct_field_def ( field, item. id ) ;
587
+ self . visit_ty ( & field. node . ty ) ;
598
588
}
599
589
600
590
self . process_generic_params ( ty_params, item. span , & qualname, item. id ) ;
@@ -648,7 +638,7 @@ impl <'l, 'tcx> DumpCsvVisitor<'l, 'tcx> {
648
638
item. id ) ;
649
639
650
640
for field in & struct_def. fields {
651
- self . process_struct_field_def ( field, & qualname , variant. node . id ) ;
641
+ self . process_struct_field_def ( field, variant. node . id ) ;
652
642
self . visit_ty ( & * field. node . ty ) ;
653
643
}
654
644
}
0 commit comments