File tree Expand file tree Collapse file tree 3 files changed +49
-6
lines changed
rustc_symbol_mangling/src Expand file tree Collapse file tree 3 files changed +49
-6
lines changed Original file line number Diff line number Diff line change @@ -259,7 +259,22 @@ fn get_lang_items(tcx: TyCtxt<'_>, (): ()) -> LanguageItems {
259259 }
260260
261261 // Collect lang items in this crate.
262- tcx. hir ( ) . visit_all_item_likes ( & mut collector) ;
262+ let crate_items = tcx. hir_crate_items ( ( ) ) ;
263+
264+ for id in crate_items. items ( ) {
265+ let item = tcx. hir ( ) . item ( id) ;
266+ collector. visit_item ( item) ;
267+ }
268+
269+ for id in crate_items. trait_items ( ) {
270+ let item = tcx. hir ( ) . trait_item ( id) ;
271+ collector. visit_trait_item ( item) ;
272+ }
273+
274+ for id in crate_items. impl_items ( ) {
275+ let item = tcx. hir ( ) . impl_item ( id) ;
276+ collector. visit_impl_item ( item) ;
277+ }
263278
264279 // Extract out the found lang items.
265280 let LanguageItemCollector { mut items, .. } = collector;
Original file line number Diff line number Diff line change 66
77use rustc_hir as hir;
88use rustc_hir:: def_id:: LocalDefId ;
9+ use rustc_hir:: itemlikevisit:: ItemLikeVisitor ;
910use rustc_middle:: ty:: print:: with_no_trimmed_paths;
1011use rustc_middle:: ty:: { subst:: InternalSubsts , Instance , TyCtxt } ;
1112use rustc_span:: symbol:: { sym, Symbol } ;
@@ -23,7 +24,27 @@ pub fn report_symbol_names(tcx: TyCtxt<'_>) {
2324
2425 tcx. dep_graph . with_ignore ( || {
2526 let mut visitor = SymbolNamesTest { tcx } ;
26- tcx. hir ( ) . visit_all_item_likes ( & mut visitor) ;
27+ let crate_items = tcx. hir_crate_items ( ( ) ) ;
28+
29+ for id in crate_items. items ( ) {
30+ let item = tcx. hir ( ) . item ( id) ;
31+ visitor. visit_item ( item) ;
32+ }
33+
34+ for id in crate_items. trait_items ( ) {
35+ let item = tcx. hir ( ) . trait_item ( id) ;
36+ visitor. visit_trait_item ( item) ;
37+ }
38+
39+ for id in crate_items. impl_items ( ) {
40+ let item = tcx. hir ( ) . impl_item ( id) ;
41+ visitor. visit_impl_item ( item) ;
42+ }
43+
44+ for id in crate_items. foreign_items ( ) {
45+ let item = tcx. hir ( ) . foreign_item ( id) ;
46+ visitor. visit_foreign_item ( item) ;
47+ }
2748 } )
2849}
2950
Original file line number Diff line number Diff line change @@ -16,7 +16,11 @@ pub fn check_crate(tcx: TyCtxt<'_>) {
1616 }
1717
1818 let mut visitor = CheckVisitor { tcx, used_trait_imports } ;
19- tcx. hir ( ) . visit_all_item_likes ( & mut visitor) ;
19+
20+ for id in tcx. hir ( ) . items ( ) {
21+ let item = tcx. hir ( ) . item ( id) ;
22+ visitor. visit_item ( item) ;
23+ }
2024
2125 unused_crates_lint ( tcx) ;
2226}
@@ -110,9 +114,12 @@ fn unused_crates_lint(tcx: TyCtxt<'_>) {
110114
111115 // Collect all the extern crates (in a reliable order).
112116 let mut crates_to_lint = vec ! [ ] ;
113- tcx. hir ( ) . visit_all_item_likes ( & mut CollectExternCrateVisitor {
114- crates_to_lint : & mut crates_to_lint,
115- } ) ;
117+ let mut visitor = CollectExternCrateVisitor { crates_to_lint : & mut crates_to_lint } ;
118+
119+ for id in tcx. hir ( ) . items ( ) {
120+ let item = tcx. hir ( ) . item ( id) ;
121+ visitor. visit_item ( item) ;
122+ }
116123
117124 let extern_prelude = & tcx. resolutions ( ( ) ) . extern_prelude ;
118125
You can’t perform that action at this time.
0 commit comments