summaryrefslogtreecommitdiffstats
path: root/third_party/rust/thiserror-impl/src/attr.rs
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/rust/thiserror-impl/src/attr.rs')
-rw-r--r--third_party/rust/thiserror-impl/src/attr.rs15
1 files changed, 13 insertions, 2 deletions
diff --git a/third_party/rust/thiserror-impl/src/attr.rs b/third_party/rust/thiserror-impl/src/attr.rs
index 269c69eca5..395edb1f5a 100644
--- a/third_party/rust/thiserror-impl/src/attr.rs
+++ b/third_party/rust/thiserror-impl/src/attr.rs
@@ -230,7 +230,18 @@ impl ToTokens for Display<'_> {
impl ToTokens for Trait {
fn to_tokens(&self, tokens: &mut TokenStream) {
- let trait_name = format_ident!("{}", format!("{:?}", self));
- tokens.extend(quote!(::core::fmt::#trait_name));
+ let trait_name = match self {
+ Trait::Debug => "Debug",
+ Trait::Display => "Display",
+ Trait::Octal => "Octal",
+ Trait::LowerHex => "LowerHex",
+ Trait::UpperHex => "UpperHex",
+ Trait::Pointer => "Pointer",
+ Trait::Binary => "Binary",
+ Trait::LowerExp => "LowerExp",
+ Trait::UpperExp => "UpperExp",
+ };
+ let ident = Ident::new(trait_name, Span::call_site());
+ tokens.extend(quote!(::core::fmt::#ident));
}
}