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 {
259
259
}
260
260
261
261
// 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
+ }
263
278
264
279
// Extract out the found lang items.
265
280
let LanguageItemCollector { mut items, .. } = collector;
Original file line number Diff line number Diff line change 6
6
7
7
use rustc_hir as hir;
8
8
use rustc_hir:: def_id:: LocalDefId ;
9
+ use rustc_hir:: itemlikevisit:: ItemLikeVisitor ;
9
10
use rustc_middle:: ty:: print:: with_no_trimmed_paths;
10
11
use rustc_middle:: ty:: { subst:: InternalSubsts , Instance , TyCtxt } ;
11
12
use rustc_span:: symbol:: { sym, Symbol } ;
@@ -23,7 +24,27 @@ pub fn report_symbol_names(tcx: TyCtxt<'_>) {
23
24
24
25
tcx. dep_graph . with_ignore ( || {
25
26
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
+ }
27
48
} )
28
49
}
29
50
Original file line number Diff line number Diff line change @@ -16,7 +16,11 @@ pub fn check_crate(tcx: TyCtxt<'_>) {
16
16
}
17
17
18
18
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
+ }
20
24
21
25
unused_crates_lint ( tcx) ;
22
26
}
@@ -110,9 +114,12 @@ fn unused_crates_lint(tcx: TyCtxt<'_>) {
110
114
111
115
// Collect all the extern crates (in a reliable order).
112
116
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
+ }
116
123
117
124
let extern_prelude = & tcx. resolutions ( ( ) ) . extern_prelude ;
118
125
You can’t perform that action at this time.
0 commit comments