summary refs log tree commit diff
path: root/compiler/rustc_mir_transform/src
diff options
context:
space:
mode:
authorGuillaume Boisseau <Nadrieril@users.noreply.github.com>2024-02-07 18:24:45 +0100
committerGitHub <noreply@github.com>2024-02-07 18:24:45 +0100
commit1f7f4e135306d564d2d3f11fea9155b0e880550e (patch)
treeacba359c620947958f283800df24c520a3653a53 /compiler/rustc_mir_transform/src
parentdacdd1acb08907922491c126b2739b3176a02d78 (diff)
parentc5e6df0c78afb787ae5b121ee8394baa21bca555 (diff)
downloadrust-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.rs12
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)
         }
     }