diff options
| author | Oli Scherer <git-spam-no-reply9815368754983@oli-obk.de> | 2024-02-23 11:07:01 +0000 |
|---|---|---|
| committer | Oli Scherer <git-spam-no-reply9815368754983@oli-obk.de> | 2024-03-07 12:42:49 +0000 |
| commit | de3fb8d429a15891deda4640d421bf223cd5843b (patch) | |
| tree | 3db71533a388e0dcf78b5fad50cd7508a0c7b496 /compiler/rustc_hir_analysis/src | |
| parent | 8c9a75b3238b66592779d6b240dbf78eacefebb8 (diff) | |
| download | rust-de3fb8d429a15891deda4640d421bf223cd5843b.tar.gz rust-de3fb8d429a15891deda4640d421bf223cd5843b.zip | |
Collect mod item types in parallel, just like wfcheck
Diffstat (limited to 'compiler/rustc_hir_analysis/src')
| -rw-r--r-- | compiler/rustc_hir_analysis/src/collect.rs | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/compiler/rustc_hir_analysis/src/collect.rs b/compiler/rustc_hir_analysis/src/collect.rs index 2cc37651ef5..73138340d78 100644 --- a/compiler/rustc_hir_analysis/src/collect.rs +++ b/compiler/rustc_hir_analysis/src/collect.rs @@ -55,7 +55,18 @@ mod type_of; // Main entry point fn collect_mod_item_types(tcx: TyCtxt<'_>, module_def_id: LocalModDefId) { - tcx.hir().visit_item_likes_in_module(module_def_id, &mut CollectItemTypesVisitor { tcx }); + let items = tcx.hir_module_items(module_def_id); + let hir = tcx.hir(); + let _ = items.par_items(|item| Ok(CollectItemTypesVisitor { tcx }.visit_item(hir.item(item)))); + let _ = items.par_trait_items(|item| { + Ok(CollectItemTypesVisitor { tcx }.visit_trait_item(hir.trait_item(item))) + }); + let _ = items.par_impl_items(|item| { + Ok(CollectItemTypesVisitor { tcx }.visit_impl_item(hir.impl_item(item))) + }); + let _ = items.par_foreign_items(|item| { + Ok(CollectItemTypesVisitor { tcx }.visit_foreign_item(hir.foreign_item(item))) + }); } pub fn provide(providers: &mut Providers) { |
