@@ -873,30 +873,31 @@ impl <'l, 'tcx> DumpCsvVisitor<'l, 'tcx> {
873873
874874 self . write_sub_paths_truncated ( path, false ) ;
875875
876- let struct_lit_data = self . save_ctxt . get_expr_data ( ex) ;
877- down_cast_data ! ( struct_lit_data, TypeRefData , self , ex. span) ;
878- self . fmt . ref_str ( recorder:: TypeRef ,
879- ex. span ,
880- Some ( struct_lit_data. span ) ,
881- struct_lit_data. ref_id ,
882- struct_lit_data. scope ) ;
883- let struct_def = struct_lit_data. ref_id ;
884-
885- for field in fields {
886- if generated_code ( field. ident . span ) {
887- continue ;
888- }
876+ if let Some ( struct_lit_data) = self . save_ctxt . get_expr_data ( ex) {
877+ down_cast_data ! ( struct_lit_data, TypeRefData , self , ex. span) ;
878+ self . fmt . ref_str ( recorder:: TypeRef ,
879+ ex. span ,
880+ Some ( struct_lit_data. span ) ,
881+ struct_lit_data. ref_id ,
882+ struct_lit_data. scope ) ;
883+ let struct_def = struct_lit_data. ref_id ;
884+
885+ for field in fields {
886+ if generated_code ( field. ident . span ) {
887+ continue ;
888+ }
889889
890- let field_data = self . save_ctxt . get_field_ref_data ( field,
891- struct_def,
892- self . cur_scope ) ;
893- self . fmt . ref_str ( recorder:: VarRef ,
894- field. ident . span ,
895- Some ( field_data. span ) ,
896- field_data. ref_id ,
897- field_data. scope ) ;
890+ let field_data = self . save_ctxt . get_field_ref_data ( field,
891+ struct_def,
892+ self . cur_scope ) ;
893+ self . fmt . ref_str ( recorder:: VarRef ,
894+ field. ident . span ,
895+ Some ( field_data. span ) ,
896+ field_data. ref_id ,
897+ field_data. scope ) ;
898898
899- self . visit_expr ( & field. expr )
899+ self . visit_expr ( & field. expr )
900+ }
900901 }
901902
902903 visit:: walk_expr_opt ( self , base)
@@ -1256,13 +1257,14 @@ impl<'l, 'tcx, 'v> Visitor<'v> for DumpCsvVisitor<'l, 'tcx> {
12561257
12571258 self . visit_expr ( & sub_ex) ;
12581259
1259- let field_data = self . save_ctxt . get_expr_data ( ex) ;
1260- down_cast_data ! ( field_data, VariableRefData , self , ex. span) ;
1261- self . fmt . ref_str ( recorder:: VarRef ,
1262- ex. span ,
1263- Some ( field_data. span ) ,
1264- field_data. ref_id ,
1265- field_data. scope ) ;
1260+ if let Some ( field_data) = self . save_ctxt . get_expr_data ( ex) {
1261+ down_cast_data ! ( field_data, VariableRefData , self , ex. span) ;
1262+ self . fmt . ref_str ( recorder:: VarRef ,
1263+ ex. span ,
1264+ Some ( field_data. span ) ,
1265+ field_data. ref_id ,
1266+ field_data. scope ) ;
1267+ }
12661268 } ,
12671269 ast:: ExprTupField ( ref sub_ex, idx) => {
12681270 if generated_code ( sub_ex. span ) {
0 commit comments