about summary refs log tree commit diff
path: root/compiler/rustc_ast_lowering/src/stability.rs
diff options
context:
space:
mode:
authorJubilee Young <workingjubilee@gmail.com>2025-02-10 03:57:32 -0800
committerJubilee Young <workingjubilee@gmail.com>2025-02-11 20:18:01 -0800
commit8abff35b41b8de89da35ab851f931d6a582f7670 (patch)
tree9fc31fe88da020be50493a9402cd87796cf35b33 /compiler/rustc_ast_lowering/src/stability.rs
parent038c183d5f94b5ca3bed351374b01be4b1c90176 (diff)
downloadrust-8abff35b41b8de89da35ab851f931d6a582f7670.tar.gz
rust-8abff35b41b8de89da35ab851f931d6a582f7670.zip
compiler: compare and hash ExternAbi like its string
Directly map each ExternAbi variant to its string and back again.
This has a few advantages:
- By making the ABIs compare equal to their strings, we can easily
  lexicographically sort them and use that sorted slice at runtime.
- We no longer need a workaround to make sure the hashes remain stable,
  as they already naturally are (by being the hashes of unique strings).
- The compiler can carry around less &str wide pointers
Diffstat (limited to 'compiler/rustc_ast_lowering/src/stability.rs')
-rw-r--r--compiler/rustc_ast_lowering/src/stability.rs9
1 files changed, 2 insertions, 7 deletions
diff --git a/compiler/rustc_ast_lowering/src/stability.rs b/compiler/rustc_ast_lowering/src/stability.rs
index e7c166850a4..14410600fab 100644
--- a/compiler/rustc_ast_lowering/src/stability.rs
+++ b/compiler/rustc_ast_lowering/src/stability.rs
@@ -54,17 +54,12 @@ enum GateReason {
 impl fmt::Display for UnstableAbi {
     fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
         let Self { abi, .. } = self;
-        let name = abi.to_string();
-        let name = name.trim_matches('"');
         match self.explain {
             GateReason::Experimental => {
-                write!(f, r#"the extern "{name}" ABI is experimental and subject to change"#)
+                write!(f, "the extern {abi} ABI is experimental and subject to change")
             }
             GateReason::ImplDetail => {
-                write!(
-                    f,
-                    r#"the extern "{name}" ABI is an implementation detail and perma-unstable"#
-                )
+                write!(f, "the extern {abi} ABI is an implementation detail and perma-unstable")
             }
         }
     }