@@ -12,7 +12,6 @@ use rustc_data_structures::unord::UnordMap;
12
12
use rustc_hashes:: Hash128 ;
13
13
use rustc_hir:: ItemId ;
14
14
use rustc_hir:: def_id:: { CrateNum , DefId , DefIdSet , LOCAL_CRATE } ;
15
- use rustc_index:: Idx ;
16
15
use rustc_macros:: { HashStable , TyDecodable , TyEncodable } ;
17
16
use rustc_query_system:: ich:: StableHashingContext ;
18
17
use rustc_session:: config:: OptLevel ;
@@ -527,8 +526,8 @@ impl<'tcx> CodegenUnit<'tcx> {
527
526
) -> Vec < ( MonoItem < ' tcx > , MonoItemData ) > {
528
527
// The codegen tests rely on items being process in the same order as
529
528
// they appear in the file, so for local items, we sort by node_id first
530
- #[ derive( PartialEq , Eq , PartialOrd , Ord ) ]
531
- struct ItemSortKey < ' tcx > ( Option < usize > , SymbolName < ' tcx > ) ;
529
+ #[ derive( PartialEq , Eq , PartialOrd , Ord , Debug ) ]
530
+ struct ItemSortKey < ' tcx > ( Option < Span > , SymbolName < ' tcx > ) ;
532
531
533
532
fn item_sort_key < ' tcx > ( tcx : TyCtxt < ' tcx > , item : MonoItem < ' tcx > ) -> ItemSortKey < ' tcx > {
534
533
ItemSortKey (
@@ -539,7 +538,9 @@ impl<'tcx> CodegenUnit<'tcx> {
539
538
// instances into account. The others don't matter for
540
539
// the codegen tests and can even make item order
541
540
// unstable.
542
- InstanceKind :: Item ( def) => def. as_local ( ) . map ( Idx :: index) ,
541
+ InstanceKind :: Item ( def) => {
542
+ def. as_local ( ) . map ( |def_id|tcx. def_span ( def_id) )
543
+ } ,
543
544
InstanceKind :: VTableShim ( ..)
544
545
| InstanceKind :: ReifyShim ( ..)
545
546
| InstanceKind :: Intrinsic ( ..)
@@ -556,8 +557,8 @@ impl<'tcx> CodegenUnit<'tcx> {
556
557
| InstanceKind :: AsyncDropGlueCtorShim ( ..) => None ,
557
558
}
558
559
}
559
- MonoItem :: Static ( def_id) => def_id. as_local ( ) . map ( Idx :: index ) ,
560
- MonoItem :: GlobalAsm ( item_id) => Some ( item_id. owner_id . def_id . index ( ) ) ,
560
+ MonoItem :: Static ( def_id) => def_id. as_local ( ) . map ( |def_id|tcx . def_span ( def_id ) ) ,
561
+ MonoItem :: GlobalAsm ( item_id) => Some ( tcx . def_span ( item_id. owner_id . def_id ) ) ,
561
562
} ,
562
563
item. symbol_name ( tcx) ,
563
564
)
0 commit comments