@@ -65,12 +65,12 @@ impl<'tcx> LanguageItemCollector<'tcx> {
65
65
}
66
66
}
67
67
68
- fn collect_item ( & mut self , item_index : usize , item_def_id : DefId ) {
68
+ fn collect_item ( & mut self , lang_item : LangItem , item_def_id : DefId ) {
69
69
// Check for duplicates.
70
- if let Some ( original_def_id) = self . items . items [ item_index ] {
70
+ if let Some ( original_def_id) = self . items . get ( lang_item ) {
71
71
if original_def_id != item_def_id {
72
72
let local_span = self . tcx . hir ( ) . span_if_local ( item_def_id) ;
73
- let lang_item_name = LangItem :: from_u32 ( item_index as u32 ) . unwrap ( ) . name ( ) ;
73
+ let lang_item_name = lang_item . name ( ) ;
74
74
let crate_name = self . tcx . crate_name ( item_def_id. krate ) ;
75
75
let mut dependency_of = Empty ;
76
76
let is_local = item_def_id. is_local ( ) ;
@@ -139,8 +139,8 @@ impl<'tcx> LanguageItemCollector<'tcx> {
139
139
}
140
140
141
141
// Matched.
142
- self . items . items [ item_index ] = Some ( item_def_id) ;
143
- if let Some ( group) = LangItem :: from_u32 ( item_index as u32 ) . unwrap ( ) . group ( ) {
142
+ self . items . set ( lang_item , item_def_id) ;
143
+ if let Some ( group) = lang_item . group ( ) {
144
144
self . items . groups [ group as usize ] . push ( item_def_id) ;
145
145
}
146
146
}
@@ -197,7 +197,7 @@ impl<'tcx> LanguageItemCollector<'tcx> {
197
197
}
198
198
}
199
199
200
- self . collect_item ( item_index , item_def_id) ;
200
+ self . collect_item ( lang_item , item_def_id) ;
201
201
}
202
202
}
203
203
@@ -208,8 +208,8 @@ fn get_lang_items(tcx: TyCtxt<'_>, (): ()) -> LanguageItems {
208
208
209
209
// Collect lang items in other crates.
210
210
for & cnum in tcx. crates ( ( ) ) . iter ( ) {
211
- for & ( def_id, item_index ) in tcx. defined_lang_items ( cnum) . iter ( ) {
212
- collector. collect_item ( item_index , def_id) ;
211
+ for & ( def_id, lang_item ) in tcx. defined_lang_items ( cnum) . iter ( ) {
212
+ collector. collect_item ( lang_item , def_id) ;
213
213
}
214
214
}
215
215
0 commit comments