@@ -6,7 +6,7 @@ use rustc_hir::def::CtorKind;
66use rustc_index:: IndexSlice ;
77use rustc_middle:: {
88 bug,
9- mir:: { GeneratorLayout , GeneratorSavedLocal } ,
9+ mir:: GeneratorLayout ,
1010 ty:: {
1111 self ,
1212 layout:: { IntegerExt , LayoutOf , PrimitiveExt , TyAndLayout } ,
@@ -323,8 +323,7 @@ pub fn build_generator_variant_struct_type_di_node<'ll, 'tcx>(
323323 generator_type_and_layout : TyAndLayout < ' tcx > ,
324324 generator_type_di_node : & ' ll DIType ,
325325 generator_layout : & GeneratorLayout < ' tcx > ,
326- state_specific_upvar_names : & IndexSlice < GeneratorSavedLocal , Option < Symbol > > ,
327- common_upvar_names : & [ String ] ,
326+ common_upvar_names : & IndexSlice < FieldIdx , Symbol > ,
328327) -> & ' ll DIType {
329328 let variant_name = GeneratorSubsts :: variant_name ( variant_index) ;
330329 let unique_type_id = UniqueTypeId :: for_enum_variant_struct_type (
@@ -357,7 +356,7 @@ pub fn build_generator_variant_struct_type_di_node<'ll, 'tcx>(
357356 . map ( |field_index| {
358357 let generator_saved_local = generator_layout. variant_fields [ variant_index]
359358 [ FieldIdx :: from_usize ( field_index) ] ;
360- let field_name_maybe = state_specific_upvar_names [ generator_saved_local] ;
359+ let field_name_maybe = generator_layout . field_names [ generator_saved_local] ;
361360 let field_name = field_name_maybe
362361 . as_ref ( )
363362 . map ( |s| Cow :: from ( s. as_str ( ) ) )
@@ -380,12 +379,13 @@ pub fn build_generator_variant_struct_type_di_node<'ll, 'tcx>(
380379 // Fields that are common to all states
381380 let common_fields: SmallVec < _ > = generator_substs
382381 . prefix_tys ( )
382+ . zip ( common_upvar_names)
383383 . enumerate ( )
384- . map ( |( index, upvar_ty) | {
384+ . map ( |( index, ( upvar_ty, upvar_name ) ) | {
385385 build_field_di_node (
386386 cx,
387387 variant_struct_type_di_node,
388- & common_upvar_names [ index ] ,
388+ upvar_name . as_str ( ) ,
389389 cx. size_and_align_of ( upvar_ty) ,
390390 generator_type_and_layout. fields . offset ( index) ,
391391 DIFlags :: FlagZero ,
0 commit comments