Skip to content

Commit

Permalink
display: avoid using formatter
Browse files Browse the repository at this point in the history
This can collide with enum variant field names. Namespace with a
`_thiserror_` prefix to avoid such collisions.
  • Loading branch information
mathstuf committed Oct 27, 2019
1 parent b2b3bae commit 5ae5b4e
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 6 deletions.
6 changes: 3 additions & 3 deletions impl/src/attr.rs
Expand Up @@ -140,16 +140,16 @@ impl ToTokens for Display<'_> {
if self.was_shorthand && fmt.value() == "{}" {
let arg = args.clone().into_iter().nth(1).unwrap();
tokens.extend(quote! {
std::fmt::Display::fmt(#arg, formatter)
std::fmt::Display::fmt(#arg, _thiserror_formatter)
});
} else if self.was_shorthand && fmt.value() == "{:?}" {
let arg = args.clone().into_iter().nth(1).unwrap();
tokens.extend(quote! {
std::fmt::Debug::fmt(#arg, formatter)
std::fmt::Debug::fmt(#arg, _thiserror_formatter)
});
} else {
tokens.extend(quote! {
write!(formatter, #fmt #args)
write!(_thiserror_formatter, #fmt #args)
});
}
}
Expand Down
4 changes: 2 additions & 2 deletions impl/src/expand.rs
Expand Up @@ -80,7 +80,7 @@ fn impl_struct(input: Struct) -> TokenStream {
let pat = fields_pat(&input.fields);
quote! {
impl #impl_generics std::fmt::Display for #ty #ty_generics #where_clause {
fn fmt(&self, formatter: &mut std::fmt::Formatter) -> std::fmt::Result {
fn fmt(&self, _thiserror_formatter: &mut std::fmt::Formatter) -> std::fmt::Result {
#[allow(unused_variables)]
let Self #pat = self;
#display
Expand Down Expand Up @@ -230,7 +230,7 @@ fn impl_enum(input: Enum) -> TokenStream {
});
Some(quote! {
impl #impl_generics std::fmt::Display for #ty #ty_generics #where_clause {
fn fmt(&self, formatter: &mut std::fmt::Formatter) -> std::fmt::Result {
fn fmt(&self, _thiserror_formatter: &mut std::fmt::Formatter) -> std::fmt::Result {
#[allow(unused_variables)]
match #void_deref self {
#(#arms,)*
Expand Down
2 changes: 1 addition & 1 deletion src/lib.rs
Expand Up @@ -109,7 +109,7 @@
//! }
//! #
//! # impl Display for MyError {
//! # fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
//! # fn fmt(&self, _thiserror_formatter: &mut fmt::Formatter) -> fmt::Result {
//! # unimplemented!()
//! # }
//! # }
Expand Down

0 comments on commit 5ae5b4e

Please sign in to comment.