Skip to content

Commit

Permalink
Collapse Verbatim representation in snapshot tests
Browse files Browse the repository at this point in the history
  • Loading branch information
dtolnay committed May 26, 2020
1 parent fb24234 commit 535bed0
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 35 deletions.
26 changes: 17 additions & 9 deletions codegen/src/debug.rs
Original file line number Diff line number Diff line change
Expand Up @@ -157,15 +157,23 @@ fn expand_impl_body(defs: &Definitions, node: &Node, name: &str) -> TokenStream
}
}
} else if fields.len() == 1 {
let ty = &fields[0];
let val = quote!(_val);
let format = format_field(&val, ty).map(|format| {
quote! {
formatter.write_str("(")?;
Debug::fmt(#format, formatter)?;
formatter.write_str(")")?;
}
});
let format = if variant == "Verbatim" {
Some(quote! {
formatter.write_str("(`")?;
Display::fmt(#val, formatter)?;
formatter.write_str("`)")?;
})
} else {
let ty = &fields[0];
format_field(&val, ty).map(|format| {
quote! {
formatter.write_str("(")?;
Debug::fmt(#format, formatter)?;
formatter.write_str(")")?;
}
})
};
quote! {
syn::#ident::#variant(_val) => {
formatter.write_str(#v)?;
Expand Down Expand Up @@ -298,7 +306,7 @@ pub fn generate(defs: &Definitions) -> Result<()> {
DEBUG_SRC,
quote! {
use super::{Lite, RefCast};
use std::fmt::{self, Debug};
use std::fmt::{self, Debug, Display};

#impls
},
Expand Down
50 changes: 25 additions & 25 deletions tests/debug/gen.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
// It is not intended for manual editing.

use super::{Lite, RefCast};
use std::fmt::{self, Debug};
use std::fmt::{self, Debug, Display};
impl Debug for Lite<syn::Abi> {
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
Expand Down Expand Up @@ -1039,9 +1039,9 @@ impl Debug for Lite<syn::Expr> {
}
syn::Expr::Verbatim(_val) => {
formatter.write_str("Verbatim")?;
formatter.write_str("(")?;
Debug::fmt(Lite(_val), formatter)?;
formatter.write_str(")")?;
formatter.write_str("(`")?;
Display::fmt(_val, formatter)?;
formatter.write_str("`)")?;
Ok(())
}
syn::Expr::While(_val) => {
Expand Down Expand Up @@ -2116,9 +2116,9 @@ impl Debug for Lite<syn::ForeignItem> {
}
syn::ForeignItem::Verbatim(_val) => {
formatter.write_str("Verbatim")?;
formatter.write_str("(")?;
Debug::fmt(Lite(_val), formatter)?;
formatter.write_str(")")?;
formatter.write_str("(`")?;
Display::fmt(_val, formatter)?;
formatter.write_str("`)")?;
Ok(())
}
_ => unreachable!(),
Expand Down Expand Up @@ -2432,9 +2432,9 @@ impl Debug for Lite<syn::ImplItem> {
}
syn::ImplItem::Verbatim(_val) => {
formatter.write_str("Verbatim")?;
formatter.write_str("(")?;
Debug::fmt(Lite(_val), formatter)?;
formatter.write_str(")")?;
formatter.write_str("(`")?;
Display::fmt(_val, formatter)?;
formatter.write_str("`)")?;
Ok(())
}
_ => unreachable!(),
Expand Down Expand Up @@ -2940,9 +2940,9 @@ impl Debug for Lite<syn::Item> {
}
syn::Item::Verbatim(_val) => {
formatter.write_str("Verbatim")?;
formatter.write_str("(")?;
Debug::fmt(Lite(_val), formatter)?;
formatter.write_str(")")?;
formatter.write_str("(`")?;
Display::fmt(_val, formatter)?;
formatter.write_str("`)")?;
Ok(())
}
_ => unreachable!(),
Expand Down Expand Up @@ -3437,9 +3437,9 @@ impl Debug for Lite<syn::Lit> {
}
syn::Lit::Verbatim(_val) => {
formatter.write_str("Verbatim")?;
formatter.write_str("(")?;
Debug::fmt(Lite(_val), formatter)?;
formatter.write_str(")")?;
formatter.write_str("(`")?;
Display::fmt(_val, formatter)?;
formatter.write_str("`)")?;
Ok(())
}
}
Expand Down Expand Up @@ -3878,9 +3878,9 @@ impl Debug for Lite<syn::Pat> {
}
syn::Pat::Verbatim(_val) => {
formatter.write_str("Verbatim")?;
formatter.write_str("(")?;
Debug::fmt(Lite(_val), formatter)?;
formatter.write_str(")")?;
formatter.write_str("(`")?;
Display::fmt(_val, formatter)?;
formatter.write_str("`)")?;
Ok(())
}
syn::Pat::Wild(_val) => {
Expand Down Expand Up @@ -4674,9 +4674,9 @@ impl Debug for Lite<syn::TraitItem> {
}
syn::TraitItem::Verbatim(_val) => {
formatter.write_str("Verbatim")?;
formatter.write_str("(")?;
Debug::fmt(Lite(_val), formatter)?;
formatter.write_str(")")?;
formatter.write_str("(`")?;
Display::fmt(_val, formatter)?;
formatter.write_str("`)")?;
Ok(())
}
_ => unreachable!(),
Expand Down Expand Up @@ -5040,9 +5040,9 @@ impl Debug for Lite<syn::Type> {
}
syn::Type::Verbatim(_val) => {
formatter.write_str("Verbatim")?;
formatter.write_str("(")?;
Debug::fmt(Lite(_val), formatter)?;
formatter.write_str(")")?;
formatter.write_str("(`")?;
Display::fmt(_val, formatter)?;
formatter.write_str("`)")?;
Ok(())
}
_ => unreachable!(),
Expand Down
2 changes: 1 addition & 1 deletion tests/test_stmt.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ fn test_raw_operator() {
snapshot!(stmt, @r###"
Local(Local {
pat: Pat::Wild,
init: Some(Verbatim(TokenStream(`& raw const x`))),
init: Some(Verbatim(`& raw const x`)),
})
"###);
}
Expand Down

0 comments on commit 535bed0

Please sign in to comment.