diff options
| author | clubby789 <jamie@hill-daniel.co.uk> | 2024-11-11 16:43:49 +0000 |
|---|---|---|
| committer | clubby789 <jamie@hill-daniel.co.uk> | 2024-11-12 13:28:05 +0000 |
| commit | 12036830d039134c447a1d7299a59560cd4a39d0 (patch) | |
| tree | 95988577a9d73cc6d03784cf28e280af3c596304 /compiler/rustc_mir_transform | |
| parent | 94371d5a8cf3c0480a744e4727837e9d7b2281b0 (diff) | |
| download | rust-12036830d039134c447a1d7299a59560cd4a39d0.tar.gz rust-12036830d039134c447a1d7299a59560cd4a39d0.zip | |
Store known passes as an IndexSet
Diffstat (limited to 'compiler/rustc_mir_transform')
| -rw-r--r-- | compiler/rustc_mir_transform/src/lib.rs | 10 | ||||
| -rw-r--r-- | compiler/rustc_mir_transform/src/pass_manager.rs | 5 |
2 files changed, 7 insertions, 8 deletions
diff --git a/compiler/rustc_mir_transform/src/lib.rs b/compiler/rustc_mir_transform/src/lib.rs index 68904c65252..d2d5facbbdc 100644 --- a/compiler/rustc_mir_transform/src/lib.rs +++ b/compiler/rustc_mir_transform/src/lib.rs @@ -90,20 +90,20 @@ macro_rules! declare_passes { )+ )* - static PASS_NAMES: LazyLock<Vec<String>> = LazyLock::new(|| vec![ + static PASS_NAMES: LazyLock<FxIndexSet<&str>> = LazyLock::new(|| [ // Fake marker pass - "PreCodegen".to_string(), + "PreCodegen", $( $( - stringify!($pass_name).to_string(), + stringify!($pass_name), $( $( - $mod_name::$pass_name::$ident.name().to_string(), + $mod_name::$pass_name::$ident.name(), )* )? )+ )* - ]); + ].into_iter().collect()); }; } diff --git a/compiler/rustc_mir_transform/src/pass_manager.rs b/compiler/rustc_mir_transform/src/pass_manager.rs index bc960ae0f56..e26e0c78b29 100644 --- a/compiler/rustc_mir_transform/src/pass_manager.rs +++ b/compiler/rustc_mir_transform/src/pass_manager.rs @@ -200,9 +200,8 @@ fn run_passes_inner<'tcx>( let named_passes: FxIndexSet<_> = overridden_passes.iter().map(|(name, _)| name.as_str()).collect(); - let known_passes: FxIndexSet<_> = crate::PASS_NAMES.iter().map(|p| p.as_str()).collect(); - for &name in named_passes.difference(&known_passes) { + for &name in named_passes.difference(&*crate::PASS_NAMES) { tcx.dcx().emit_warn(errors::UnknownPassName { name }); } @@ -213,7 +212,7 @@ fn run_passes_inner<'tcx>( { let used_passes: FxIndexSet<_> = passes.iter().map(|p| p.name()).collect(); - let undeclared = used_passes.difference(&known_passes).collect::<Vec<_>>(); + let undeclared = used_passes.difference(&*crate::PASS_NAMES).collect::<Vec<_>>(); if let Some((name, rest)) = undeclared.split_first() { let mut err = tcx.dcx().struct_bug(format!("pass `{name}` is not declared in `PASS_NAMES`")); |
