@@ -6,7 +6,7 @@ use rustc_hir::def::CtorKind;
6
6
use rustc_index:: IndexSlice ;
7
7
use rustc_middle:: {
8
8
bug,
9
- mir:: { GeneratorLayout , GeneratorSavedLocal } ,
9
+ mir:: GeneratorLayout ,
10
10
ty:: {
11
11
self ,
12
12
layout:: { IntegerExt , LayoutOf , PrimitiveExt , TyAndLayout } ,
@@ -323,8 +323,7 @@ pub fn build_generator_variant_struct_type_di_node<'ll, 'tcx>(
323
323
generator_type_and_layout : TyAndLayout < ' tcx > ,
324
324
generator_type_di_node : & ' ll DIType ,
325
325
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 > ,
328
327
) -> & ' ll DIType {
329
328
let variant_name = GeneratorSubsts :: variant_name ( variant_index) ;
330
329
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>(
357
356
. map ( |field_index| {
358
357
let generator_saved_local = generator_layout. variant_fields [ variant_index]
359
358
[ 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] ;
361
360
let field_name = field_name_maybe
362
361
. as_ref ( )
363
362
. map ( |s| Cow :: from ( s. as_str ( ) ) )
@@ -380,12 +379,13 @@ pub fn build_generator_variant_struct_type_di_node<'ll, 'tcx>(
380
379
// Fields that are common to all states
381
380
let common_fields: SmallVec < _ > = generator_substs
382
381
. prefix_tys ( )
382
+ . zip ( common_upvar_names)
383
383
. enumerate ( )
384
- . map ( |( index, upvar_ty) | {
384
+ . map ( |( index, ( upvar_ty, upvar_name ) ) | {
385
385
build_field_di_node (
386
386
cx,
387
387
variant_struct_type_di_node,
388
- & common_upvar_names [ index ] ,
388
+ upvar_name . as_str ( ) ,
389
389
cx. size_and_align_of ( upvar_ty) ,
390
390
generator_type_and_layout. fields . offset ( index) ,
391
391
DIFlags :: FlagZero ,
0 commit comments