summaryrefslogtreecommitdiffstats
path: root/third_party/rust/thiserror-impl/src
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/rust/thiserror-impl/src')
-rw-r--r--third_party/rust/thiserror-impl/src/ast.rs2
-rw-r--r--third_party/rust/thiserror-impl/src/attr.rs15
-rw-r--r--third_party/rust/thiserror-impl/src/expand.rs4
3 files changed, 16 insertions, 5 deletions
diff --git a/third_party/rust/thiserror-impl/src/ast.rs b/third_party/rust/thiserror-impl/src/ast.rs
index 9e06928980..4739d58beb 100644
--- a/third_party/rust/thiserror-impl/src/ast.rs
+++ b/third_party/rust/thiserror-impl/src/ast.rs
@@ -82,7 +82,7 @@ impl<'a> Enum<'a> {
.map(|node| {
let mut variant = Variant::from_syn(node, &scope, span)?;
if let display @ None = &mut variant.attrs.display {
- *display = attrs.display.clone();
+ display.clone_from(&attrs.display);
}
if let Some(display) = &mut variant.attrs.display {
display.expand_shorthand(&variant.fields);
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));
}
}
diff --git a/third_party/rust/thiserror-impl/src/expand.rs b/third_party/rust/thiserror-impl/src/expand.rs
index 1b44513a23..296b567bdc 100644
--- a/third_party/rust/thiserror-impl/src/expand.rs
+++ b/third_party/rust/thiserror-impl/src/expand.rs
@@ -155,7 +155,7 @@ fn impl_struct(input: Struct) -> TokenStream {
::core::fmt::Display::fmt(&self.#only_field, __formatter)
})
} else if let Some(display) = &input.attrs.display {
- display_implied_bounds = display.implied_bounds.clone();
+ display_implied_bounds.clone_from(&display.implied_bounds);
let use_as_display = use_as_display(display.has_bonus_display);
let pat = fields_pat(&input.fields);
Some(quote! {
@@ -399,7 +399,7 @@ fn impl_enum(input: Enum) -> TokenStream {
let mut display_implied_bounds = Set::new();
let display = match &variant.attrs.display {
Some(display) => {
- display_implied_bounds = display.implied_bounds.clone();
+ display_implied_bounds.clone_from(&display.implied_bounds);
display.to_token_stream()
}
None => {