diff options
| author | Guillaume Boisseau <Nadrieril@users.noreply.github.com> | 2024-02-07 18:24:45 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-02-07 18:24:45 +0100 |
| commit | 1f7f4e135306d564d2d3f11fea9155b0e880550e (patch) | |
| tree | acba359c620947958f283800df24c520a3653a53 /compiler/rustc_mir_transform/src | |
| parent | dacdd1acb08907922491c126b2739b3176a02d78 (diff) | |
| parent | c5e6df0c78afb787ae5b121ee8394baa21bca555 (diff) | |
| download | rust-1f7f4e135306d564d2d3f11fea9155b0e880550e.tar.gz rust-1f7f4e135306d564d2d3f11fea9155b0e880550e.zip | |
Rollup merge of #120733 - klensy:trait-const-fn, r=oli-obk
MirPass: make name more const Continues #120161, this time applied to `MirPass` instead of `MirLint`, locally shaves few (very few) instructions off. r? ``@cjgillot``
Diffstat (limited to 'compiler/rustc_mir_transform/src')
| -rw-r--r-- | compiler/rustc_mir_transform/src/pass_manager.rs | 12 |
1 files changed, 2 insertions, 10 deletions
diff --git a/compiler/rustc_mir_transform/src/pass_manager.rs b/compiler/rustc_mir_transform/src/pass_manager.rs index 605e1ad46d7..77478cc741d 100644 --- a/compiler/rustc_mir_transform/src/pass_manager.rs +++ b/compiler/rustc_mir_transform/src/pass_manager.rs @@ -8,18 +8,10 @@ use crate::{lint::lint_body, validate, MirPass}; pub trait MirLint<'tcx> { fn name(&self) -> &'static str { // FIXME Simplify the implementation once more `str` methods get const-stable. + // See copypaste in `MirPass` const { let name = std::any::type_name::<Self>(); - let bytes = name.as_bytes(); - let mut i = bytes.len(); - while i > 0 && bytes[i - 1] != b':' { - i = i - 1; - } - let (_, bytes) = bytes.split_at(i); - match std::str::from_utf8(bytes) { - Ok(name) => name, - Err(_) => name, - } + rustc_middle::util::common::c_name(name) } } |
