Omit empty vec from snapshot
diff --git a/codegen/src/debug.rs b/codegen/src/debug.rs
index e2b516a..7795496 100644
--- a/codegen/src/debug.rs
+++ b/codegen/src/debug.rs
@@ -212,9 +212,17 @@
} else {
let val = quote!(&_val.#ident);
let format = format_field(&val, ty)?;
- Some(quote! {
+ let mut call = quote! {
formatter.field(#f, #format);
- })
+ };
+ if let Type::Vec(_) | Type::Punctuated(_) = ty {
+ call = quote! {
+ if !_val.#ident.is_empty() {
+ #call
+ }
+ };
+ }
+ Some(call)
}
});
quote! {
diff --git a/tests/debug/gen.rs b/tests/debug/gen.rs
index 78f08fd..d9aeee7 100644
--- a/tests/debug/gen.rs
+++ b/tests/debug/gen.rs
@@ -42,7 +42,9 @@
}
formatter.field("colon2_token", Print::ref_cast(val));
}
- formatter.field("args", Lite(&_val.args));
+ if !_val.args.is_empty() {
+ formatter.field("args", Lite(&_val.args));
+ }
formatter.finish()
}
}
@@ -113,7 +115,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("Arm");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
if let Some(val) = &_val.leading_vert {
#[derive(RefCast)]
#[repr(transparent)]
@@ -126,7 +130,9 @@
}
formatter.field("leading_vert", Print::ref_cast(val));
}
- formatter.field("pats", Lite(&_val.pats));
+ if !_val.pats.is_empty() {
+ formatter.field("pats", Lite(&_val.pats));
+ }
if let Some(val) = &_val.guard {
#[derive(RefCast)]
#[repr(transparent)]
@@ -353,7 +359,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("Block");
- formatter.field("stmts", Lite(&_val.stmts));
+ if !_val.stmts.is_empty() {
+ formatter.field("stmts", Lite(&_val.stmts));
+ }
formatter.finish()
}
}
@@ -361,7 +369,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("BoundLifetimes");
- formatter.field("lifetimes", Lite(&_val.lifetimes));
+ if !_val.lifetimes.is_empty() {
+ formatter.field("lifetimes", Lite(&_val.lifetimes));
+ }
formatter.finish()
}
}
@@ -369,7 +379,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ConstParam");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("ident", Lite(&_val.ident));
formatter.field("ty", Lite(&_val.ty));
if let Some(val) = &_val.eq_token {
@@ -408,7 +420,9 @@
let _val = &self.value;
let mut formatter = formatter.debug_struct("Constraint");
formatter.field("ident", Lite(&_val.ident));
- formatter.field("bounds", Lite(&_val.bounds));
+ if !_val.bounds.is_empty() {
+ formatter.field("bounds", Lite(&_val.bounds));
+ }
formatter.finish()
}
}
@@ -435,7 +449,9 @@
}
syn::Data::Enum(_val) => {
let mut formatter = formatter.debug_struct("Data::Enum");
- formatter.field("variants", Lite(&_val.variants));
+ if !_val.variants.is_empty() {
+ formatter.field("variants", Lite(&_val.variants));
+ }
formatter.finish()
}
syn::Data::Union(_val) => {
@@ -450,7 +466,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("DataEnum");
- formatter.field("variants", Lite(&_val.variants));
+ if !_val.variants.is_empty() {
+ formatter.field("variants", Lite(&_val.variants));
+ }
formatter.finish()
}
}
@@ -486,7 +504,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("DeriveInput");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("vis", Lite(&_val.vis));
formatter.field("ident", Lite(&_val.ident));
formatter.field("generics", Lite(&_val.generics));
@@ -500,33 +520,47 @@
match _val {
syn::Expr::Box(_val) => {
let mut formatter = formatter.debug_struct("Expr::Box");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("expr", Lite(&_val.expr));
formatter.finish()
}
syn::Expr::InPlace(_val) => {
let mut formatter = formatter.debug_struct("Expr::InPlace");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("place", Lite(&_val.place));
formatter.field("value", Lite(&_val.value));
formatter.finish()
}
syn::Expr::Array(_val) => {
let mut formatter = formatter.debug_struct("Expr::Array");
- formatter.field("attrs", Lite(&_val.attrs));
- formatter.field("elems", Lite(&_val.elems));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
+ if !_val.elems.is_empty() {
+ formatter.field("elems", Lite(&_val.elems));
+ }
formatter.finish()
}
syn::Expr::Call(_val) => {
let mut formatter = formatter.debug_struct("Expr::Call");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("func", Lite(&_val.func));
- formatter.field("args", Lite(&_val.args));
+ if !_val.args.is_empty() {
+ formatter.field("args", Lite(&_val.args));
+ }
formatter.finish()
}
syn::Expr::MethodCall(_val) => {
let mut formatter = formatter.debug_struct("Expr::MethodCall");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("receiver", Lite(&_val.receiver));
formatter.field("method", Lite(&_val.method));
if let Some(val) = &_val.turbofish {
@@ -545,18 +579,26 @@
}
formatter.field("turbofish", Print::ref_cast(val));
}
- formatter.field("args", Lite(&_val.args));
+ if !_val.args.is_empty() {
+ formatter.field("args", Lite(&_val.args));
+ }
formatter.finish()
}
syn::Expr::Tuple(_val) => {
let mut formatter = formatter.debug_struct("Expr::Tuple");
- formatter.field("attrs", Lite(&_val.attrs));
- formatter.field("elems", Lite(&_val.elems));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
+ if !_val.elems.is_empty() {
+ formatter.field("elems", Lite(&_val.elems));
+ }
formatter.finish()
}
syn::Expr::Binary(_val) => {
let mut formatter = formatter.debug_struct("Expr::Binary");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("left", Lite(&_val.left));
formatter.field("op", Lite(&_val.op));
formatter.field("right", Lite(&_val.right));
@@ -564,41 +606,55 @@
}
syn::Expr::Unary(_val) => {
let mut formatter = formatter.debug_struct("Expr::Unary");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("op", Lite(&_val.op));
formatter.field("expr", Lite(&_val.expr));
formatter.finish()
}
syn::Expr::Lit(_val) => {
let mut formatter = formatter.debug_struct("Expr::Lit");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("lit", Lite(&_val.lit));
formatter.finish()
}
syn::Expr::Cast(_val) => {
let mut formatter = formatter.debug_struct("Expr::Cast");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("expr", Lite(&_val.expr));
formatter.field("ty", Lite(&_val.ty));
formatter.finish()
}
syn::Expr::Type(_val) => {
let mut formatter = formatter.debug_struct("Expr::Type");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("expr", Lite(&_val.expr));
formatter.field("ty", Lite(&_val.ty));
formatter.finish()
}
syn::Expr::Let(_val) => {
let mut formatter = formatter.debug_struct("Expr::Let");
- formatter.field("attrs", Lite(&_val.attrs));
- formatter.field("pats", Lite(&_val.pats));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
+ if !_val.pats.is_empty() {
+ formatter.field("pats", Lite(&_val.pats));
+ }
formatter.field("expr", Lite(&_val.expr));
formatter.finish()
}
syn::Expr::If(_val) => {
let mut formatter = formatter.debug_struct("Expr::If");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("cond", Lite(&_val.cond));
formatter.field("then_branch", Lite(&_val.then_branch));
if let Some(val) = &_val.else_branch {
@@ -621,7 +677,9 @@
}
syn::Expr::While(_val) => {
let mut formatter = formatter.debug_struct("Expr::While");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
if let Some(val) = &_val.label {
#[derive(RefCast)]
#[repr(transparent)]
@@ -644,7 +702,9 @@
}
syn::Expr::ForLoop(_val) => {
let mut formatter = formatter.debug_struct("Expr::ForLoop");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
if let Some(val) = &_val.label {
#[derive(RefCast)]
#[repr(transparent)]
@@ -668,7 +728,9 @@
}
syn::Expr::Loop(_val) => {
let mut formatter = formatter.debug_struct("Expr::Loop");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
if let Some(val) = &_val.label {
#[derive(RefCast)]
#[repr(transparent)]
@@ -690,14 +752,20 @@
}
syn::Expr::Match(_val) => {
let mut formatter = formatter.debug_struct("Expr::Match");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("expr", Lite(&_val.expr));
- formatter.field("arms", Lite(&_val.arms));
+ if !_val.arms.is_empty() {
+ formatter.field("arms", Lite(&_val.arms));
+ }
formatter.finish()
}
syn::Expr::Closure(_val) => {
let mut formatter = formatter.debug_struct("Expr::Closure");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
if let Some(val) = &_val.asyncness {
#[derive(RefCast)]
#[repr(transparent)]
@@ -734,20 +802,26 @@
}
formatter.field("capture", Print::ref_cast(val));
}
- formatter.field("inputs", Lite(&_val.inputs));
+ if !_val.inputs.is_empty() {
+ formatter.field("inputs", Lite(&_val.inputs));
+ }
formatter.field("output", Lite(&_val.output));
formatter.field("body", Lite(&_val.body));
formatter.finish()
}
syn::Expr::Unsafe(_val) => {
let mut formatter = formatter.debug_struct("Expr::Unsafe");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("block", Lite(&_val.block));
formatter.finish()
}
syn::Expr::Block(_val) => {
let mut formatter = formatter.debug_struct("Expr::Block");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
if let Some(val) = &_val.label {
#[derive(RefCast)]
#[repr(transparent)]
@@ -769,14 +843,18 @@
}
syn::Expr::Assign(_val) => {
let mut formatter = formatter.debug_struct("Expr::Assign");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("left", Lite(&_val.left));
formatter.field("right", Lite(&_val.right));
formatter.finish()
}
syn::Expr::AssignOp(_val) => {
let mut formatter = formatter.debug_struct("Expr::AssignOp");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("left", Lite(&_val.left));
formatter.field("op", Lite(&_val.op));
formatter.field("right", Lite(&_val.right));
@@ -784,21 +862,27 @@
}
syn::Expr::Field(_val) => {
let mut formatter = formatter.debug_struct("Expr::Field");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("base", Lite(&_val.base));
formatter.field("member", Lite(&_val.member));
formatter.finish()
}
syn::Expr::Index(_val) => {
let mut formatter = formatter.debug_struct("Expr::Index");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("expr", Lite(&_val.expr));
formatter.field("index", Lite(&_val.index));
formatter.finish()
}
syn::Expr::Range(_val) => {
let mut formatter = formatter.debug_struct("Expr::Range");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
if let Some(val) = &_val.from {
#[derive(RefCast)]
#[repr(transparent)]
@@ -836,7 +920,9 @@
}
syn::Expr::Path(_val) => {
let mut formatter = formatter.debug_struct("Expr::Path");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
if let Some(val) = &_val.qself {
#[derive(RefCast)]
#[repr(transparent)]
@@ -858,7 +944,9 @@
}
syn::Expr::Reference(_val) => {
let mut formatter = formatter.debug_struct("Expr::Reference");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
if let Some(val) = &_val.mutability {
#[derive(RefCast)]
#[repr(transparent)]
@@ -876,7 +964,9 @@
}
syn::Expr::Break(_val) => {
let mut formatter = formatter.debug_struct("Expr::Break");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
if let Some(val) = &_val.label {
#[derive(RefCast)]
#[repr(transparent)]
@@ -913,7 +1003,9 @@
}
syn::Expr::Continue(_val) => {
let mut formatter = formatter.debug_struct("Expr::Continue");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
if let Some(val) = &_val.label {
#[derive(RefCast)]
#[repr(transparent)]
@@ -934,7 +1026,9 @@
}
syn::Expr::Return(_val) => {
let mut formatter = formatter.debug_struct("Expr::Return");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
if let Some(val) = &_val.expr {
#[derive(RefCast)]
#[repr(transparent)]
@@ -955,15 +1049,21 @@
}
syn::Expr::Macro(_val) => {
let mut formatter = formatter.debug_struct("Expr::Macro");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("mac", Lite(&_val.mac));
formatter.finish()
}
syn::Expr::Struct(_val) => {
let mut formatter = formatter.debug_struct("Expr::Struct");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("path", Lite(&_val.path));
- formatter.field("fields", Lite(&_val.fields));
+ if !_val.fields.is_empty() {
+ formatter.field("fields", Lite(&_val.fields));
+ }
if let Some(val) = &_val.dot2_token {
#[derive(RefCast)]
#[repr(transparent)]
@@ -996,32 +1096,42 @@
}
syn::Expr::Repeat(_val) => {
let mut formatter = formatter.debug_struct("Expr::Repeat");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("expr", Lite(&_val.expr));
formatter.field("len", Lite(&_val.len));
formatter.finish()
}
syn::Expr::Paren(_val) => {
let mut formatter = formatter.debug_struct("Expr::Paren");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("expr", Lite(&_val.expr));
formatter.finish()
}
syn::Expr::Group(_val) => {
let mut formatter = formatter.debug_struct("Expr::Group");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("expr", Lite(&_val.expr));
formatter.finish()
}
syn::Expr::Try(_val) => {
let mut formatter = formatter.debug_struct("Expr::Try");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("expr", Lite(&_val.expr));
formatter.finish()
}
syn::Expr::Async(_val) => {
let mut formatter = formatter.debug_struct("Expr::Async");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
if let Some(val) = &_val.capture {
#[derive(RefCast)]
#[repr(transparent)]
@@ -1039,13 +1149,17 @@
}
syn::Expr::TryBlock(_val) => {
let mut formatter = formatter.debug_struct("Expr::TryBlock");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("block", Lite(&_val.block));
formatter.finish()
}
syn::Expr::Yield(_val) => {
let mut formatter = formatter.debug_struct("Expr::Yield");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
if let Some(val) = &_val.expr {
#[derive(RefCast)]
#[repr(transparent)]
@@ -1076,8 +1190,12 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ExprArray");
- formatter.field("attrs", Lite(&_val.attrs));
- formatter.field("elems", Lite(&_val.elems));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
+ if !_val.elems.is_empty() {
+ formatter.field("elems", Lite(&_val.elems));
+ }
formatter.finish()
}
}
@@ -1085,7 +1203,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ExprAssign");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("left", Lite(&_val.left));
formatter.field("right", Lite(&_val.right));
formatter.finish()
@@ -1095,7 +1215,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ExprAssignOp");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("left", Lite(&_val.left));
formatter.field("op", Lite(&_val.op));
formatter.field("right", Lite(&_val.right));
@@ -1106,7 +1228,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ExprAsync");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
if let Some(val) = &_val.capture {
#[derive(RefCast)]
#[repr(transparent)]
@@ -1127,7 +1251,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ExprBinary");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("left", Lite(&_val.left));
formatter.field("op", Lite(&_val.op));
formatter.field("right", Lite(&_val.right));
@@ -1138,7 +1264,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ExprBlock");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
if let Some(val) = &_val.label {
#[derive(RefCast)]
#[repr(transparent)]
@@ -1163,7 +1291,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ExprBox");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("expr", Lite(&_val.expr));
formatter.finish()
}
@@ -1172,7 +1302,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ExprBreak");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
if let Some(val) = &_val.label {
#[derive(RefCast)]
#[repr(transparent)]
@@ -1212,9 +1344,13 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ExprCall");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("func", Lite(&_val.func));
- formatter.field("args", Lite(&_val.args));
+ if !_val.args.is_empty() {
+ formatter.field("args", Lite(&_val.args));
+ }
formatter.finish()
}
}
@@ -1222,7 +1358,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ExprCast");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("expr", Lite(&_val.expr));
formatter.field("ty", Lite(&_val.ty));
formatter.finish()
@@ -1232,7 +1370,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ExprClosure");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
if let Some(val) = &_val.asyncness {
#[derive(RefCast)]
#[repr(transparent)]
@@ -1269,7 +1409,9 @@
}
formatter.field("capture", Print::ref_cast(val));
}
- formatter.field("inputs", Lite(&_val.inputs));
+ if !_val.inputs.is_empty() {
+ formatter.field("inputs", Lite(&_val.inputs));
+ }
formatter.field("output", Lite(&_val.output));
formatter.field("body", Lite(&_val.body));
formatter.finish()
@@ -1279,7 +1421,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ExprContinue");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
if let Some(val) = &_val.label {
#[derive(RefCast)]
#[repr(transparent)]
@@ -1303,7 +1447,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ExprField");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("base", Lite(&_val.base));
formatter.field("member", Lite(&_val.member));
formatter.finish()
@@ -1313,7 +1459,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ExprForLoop");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
if let Some(val) = &_val.label {
#[derive(RefCast)]
#[repr(transparent)]
@@ -1340,7 +1488,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ExprGroup");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("expr", Lite(&_val.expr));
formatter.finish()
}
@@ -1349,7 +1499,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ExprIf");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("cond", Lite(&_val.cond));
formatter.field("then_branch", Lite(&_val.then_branch));
if let Some(val) = &_val.else_branch {
@@ -1375,7 +1527,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ExprInPlace");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("place", Lite(&_val.place));
formatter.field("value", Lite(&_val.value));
formatter.finish()
@@ -1385,7 +1539,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ExprIndex");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("expr", Lite(&_val.expr));
formatter.field("index", Lite(&_val.index));
formatter.finish()
@@ -1395,8 +1551,12 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ExprLet");
- formatter.field("attrs", Lite(&_val.attrs));
- formatter.field("pats", Lite(&_val.pats));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
+ if !_val.pats.is_empty() {
+ formatter.field("pats", Lite(&_val.pats));
+ }
formatter.field("expr", Lite(&_val.expr));
formatter.finish()
}
@@ -1405,7 +1565,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ExprLit");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("lit", Lite(&_val.lit));
formatter.finish()
}
@@ -1414,7 +1576,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ExprLoop");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
if let Some(val) = &_val.label {
#[derive(RefCast)]
#[repr(transparent)]
@@ -1439,7 +1603,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ExprMacro");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("mac", Lite(&_val.mac));
formatter.finish()
}
@@ -1448,9 +1614,13 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ExprMatch");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("expr", Lite(&_val.expr));
- formatter.field("arms", Lite(&_val.arms));
+ if !_val.arms.is_empty() {
+ formatter.field("arms", Lite(&_val.arms));
+ }
formatter.finish()
}
}
@@ -1458,7 +1628,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ExprMethodCall");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("receiver", Lite(&_val.receiver));
formatter.field("method", Lite(&_val.method));
if let Some(val) = &_val.turbofish {
@@ -1477,7 +1649,9 @@
}
formatter.field("turbofish", Print::ref_cast(val));
}
- formatter.field("args", Lite(&_val.args));
+ if !_val.args.is_empty() {
+ formatter.field("args", Lite(&_val.args));
+ }
formatter.finish()
}
}
@@ -1485,7 +1659,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ExprParen");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("expr", Lite(&_val.expr));
formatter.finish()
}
@@ -1494,7 +1670,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ExprPath");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
if let Some(val) = &_val.qself {
#[derive(RefCast)]
#[repr(transparent)]
@@ -1519,7 +1697,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ExprRange");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
if let Some(val) = &_val.from {
#[derive(RefCast)]
#[repr(transparent)]
@@ -1560,7 +1740,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ExprReference");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
if let Some(val) = &_val.mutability {
#[derive(RefCast)]
#[repr(transparent)]
@@ -1581,7 +1763,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ExprRepeat");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("expr", Lite(&_val.expr));
formatter.field("len", Lite(&_val.len));
formatter.finish()
@@ -1591,7 +1775,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ExprReturn");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
if let Some(val) = &_val.expr {
#[derive(RefCast)]
#[repr(transparent)]
@@ -1615,9 +1801,13 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ExprStruct");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("path", Lite(&_val.path));
- formatter.field("fields", Lite(&_val.fields));
+ if !_val.fields.is_empty() {
+ formatter.field("fields", Lite(&_val.fields));
+ }
if let Some(val) = &_val.dot2_token {
#[derive(RefCast)]
#[repr(transparent)]
@@ -1653,7 +1843,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ExprTry");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("expr", Lite(&_val.expr));
formatter.finish()
}
@@ -1662,7 +1854,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ExprTryBlock");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("block", Lite(&_val.block));
formatter.finish()
}
@@ -1671,8 +1865,12 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ExprTuple");
- formatter.field("attrs", Lite(&_val.attrs));
- formatter.field("elems", Lite(&_val.elems));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
+ if !_val.elems.is_empty() {
+ formatter.field("elems", Lite(&_val.elems));
+ }
formatter.finish()
}
}
@@ -1680,7 +1878,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ExprType");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("expr", Lite(&_val.expr));
formatter.field("ty", Lite(&_val.ty));
formatter.finish()
@@ -1690,7 +1890,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ExprUnary");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("op", Lite(&_val.op));
formatter.field("expr", Lite(&_val.expr));
formatter.finish()
@@ -1700,7 +1902,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ExprUnsafe");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("block", Lite(&_val.block));
formatter.finish()
}
@@ -1717,7 +1921,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ExprWhile");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
if let Some(val) = &_val.label {
#[derive(RefCast)]
#[repr(transparent)]
@@ -1743,7 +1949,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ExprYield");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
if let Some(val) = &_val.expr {
#[derive(RefCast)]
#[repr(transparent)]
@@ -1767,7 +1975,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("Field");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("vis", Lite(&_val.vis));
if let Some(val) = &_val.ident {
#[derive(RefCast)]
@@ -1805,7 +2015,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("FieldPat");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("member", Lite(&_val.member));
if let Some(val) = &_val.colon_token {
#[derive(RefCast)]
@@ -1827,7 +2039,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("FieldValue");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("member", Lite(&_val.member));
if let Some(val) = &_val.colon_token {
#[derive(RefCast)]
@@ -1851,12 +2065,16 @@
match _val {
syn::Fields::Named(_val) => {
let mut formatter = formatter.debug_struct("Fields::Named");
- formatter.field("named", Lite(&_val.named));
+ if !_val.named.is_empty() {
+ formatter.field("named", Lite(&_val.named));
+ }
formatter.finish()
}
syn::Fields::Unnamed(_val) => {
let mut formatter = formatter.debug_struct("Fields::Unnamed");
- formatter.field("unnamed", Lite(&_val.unnamed));
+ if !_val.unnamed.is_empty() {
+ formatter.field("unnamed", Lite(&_val.unnamed));
+ }
formatter.finish()
}
syn::Fields::Unit => formatter.write_str("Unit"),
@@ -1867,7 +2085,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("FieldsNamed");
- formatter.field("named", Lite(&_val.named));
+ if !_val.named.is_empty() {
+ formatter.field("named", Lite(&_val.named));
+ }
formatter.finish()
}
}
@@ -1875,7 +2095,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("FieldsUnnamed");
- formatter.field("unnamed", Lite(&_val.unnamed));
+ if !_val.unnamed.is_empty() {
+ formatter.field("unnamed", Lite(&_val.unnamed));
+ }
formatter.finish()
}
}
@@ -1899,8 +2121,12 @@
}
formatter.field("shebang", Print::ref_cast(val));
}
- formatter.field("attrs", Lite(&_val.attrs));
- formatter.field("items", Lite(&_val.items));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
+ if !_val.items.is_empty() {
+ formatter.field("items", Lite(&_val.items));
+ }
formatter.finish()
}
}
@@ -1941,7 +2167,9 @@
let _val = &self.value;
let mut formatter = formatter.debug_struct("FnDecl");
formatter.field("generics", Lite(&_val.generics));
- formatter.field("inputs", Lite(&_val.inputs));
+ if !_val.inputs.is_empty() {
+ formatter.field("inputs", Lite(&_val.inputs));
+ }
if let Some(val) = &_val.variadic {
#[derive(RefCast)]
#[repr(transparent)]
@@ -1964,7 +2192,9 @@
match _val {
syn::ForeignItem::Fn(_val) => {
let mut formatter = formatter.debug_struct("ForeignItem::Fn");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("vis", Lite(&_val.vis));
formatter.field("ident", Lite(&_val.ident));
formatter.field("decl", Lite(&_val.decl));
@@ -1972,7 +2202,9 @@
}
syn::ForeignItem::Static(_val) => {
let mut formatter = formatter.debug_struct("ForeignItem::Static");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("vis", Lite(&_val.vis));
if let Some(val) = &_val.mutability {
#[derive(RefCast)]
@@ -1992,14 +2224,18 @@
}
syn::ForeignItem::Type(_val) => {
let mut formatter = formatter.debug_struct("ForeignItem::Type");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("vis", Lite(&_val.vis));
formatter.field("ident", Lite(&_val.ident));
formatter.finish()
}
syn::ForeignItem::Macro(_val) => {
let mut formatter = formatter.debug_struct("ForeignItem::Macro");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("mac", Lite(&_val.mac));
if let Some(val) = &_val.semi_token {
#[derive(RefCast)]
@@ -2027,7 +2263,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ForeignItemFn");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("vis", Lite(&_val.vis));
formatter.field("ident", Lite(&_val.ident));
formatter.field("decl", Lite(&_val.decl));
@@ -2038,7 +2276,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ForeignItemMacro");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("mac", Lite(&_val.mac));
if let Some(val) = &_val.semi_token {
#[derive(RefCast)]
@@ -2059,7 +2299,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ForeignItemStatic");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("vis", Lite(&_val.vis));
if let Some(val) = &_val.mutability {
#[derive(RefCast)]
@@ -2082,7 +2324,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ForeignItemType");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("vis", Lite(&_val.vis));
formatter.field("ident", Lite(&_val.ident));
formatter.finish()
@@ -2183,7 +2427,9 @@
}
formatter.field("lt_token", Print::ref_cast(val));
}
- formatter.field("params", Lite(&_val.params));
+ if !_val.params.is_empty() {
+ formatter.field("params", Lite(&_val.params));
+ }
if let Some(val) = &_val.gt_token {
#[derive(RefCast)]
#[repr(transparent)]
@@ -2221,7 +2467,9 @@
match _val {
syn::ImplItem::Const(_val) => {
let mut formatter = formatter.debug_struct("ImplItem::Const");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("vis", Lite(&_val.vis));
if let Some(val) = &_val.defaultness {
#[derive(RefCast)]
@@ -2242,7 +2490,9 @@
}
syn::ImplItem::Method(_val) => {
let mut formatter = formatter.debug_struct("ImplItem::Method");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("vis", Lite(&_val.vis));
if let Some(val) = &_val.defaultness {
#[derive(RefCast)]
@@ -2262,7 +2512,9 @@
}
syn::ImplItem::Type(_val) => {
let mut formatter = formatter.debug_struct("ImplItem::Type");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("vis", Lite(&_val.vis));
if let Some(val) = &_val.defaultness {
#[derive(RefCast)]
@@ -2283,7 +2535,9 @@
}
syn::ImplItem::Existential(_val) => {
let mut formatter = formatter.debug_struct("ImplItem::Existential");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("ident", Lite(&_val.ident));
formatter.field("generics", Lite(&_val.generics));
if let Some(val) = &_val.colon_token {
@@ -2298,12 +2552,16 @@
}
formatter.field("colon_token", Print::ref_cast(val));
}
- formatter.field("bounds", Lite(&_val.bounds));
+ if !_val.bounds.is_empty() {
+ formatter.field("bounds", Lite(&_val.bounds));
+ }
formatter.finish()
}
syn::ImplItem::Macro(_val) => {
let mut formatter = formatter.debug_struct("ImplItem::Macro");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("mac", Lite(&_val.mac));
if let Some(val) = &_val.semi_token {
#[derive(RefCast)]
@@ -2331,7 +2589,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ImplItemConst");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("vis", Lite(&_val.vis));
if let Some(val) = &_val.defaultness {
#[derive(RefCast)]
@@ -2355,7 +2615,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ImplItemExistential");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("ident", Lite(&_val.ident));
formatter.field("generics", Lite(&_val.generics));
if let Some(val) = &_val.colon_token {
@@ -2370,7 +2632,9 @@
}
formatter.field("colon_token", Print::ref_cast(val));
}
- formatter.field("bounds", Lite(&_val.bounds));
+ if !_val.bounds.is_empty() {
+ formatter.field("bounds", Lite(&_val.bounds));
+ }
formatter.finish()
}
}
@@ -2378,7 +2642,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ImplItemMacro");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("mac", Lite(&_val.mac));
if let Some(val) = &_val.semi_token {
#[derive(RefCast)]
@@ -2399,7 +2665,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ImplItemMethod");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("vis", Lite(&_val.vis));
if let Some(val) = &_val.defaultness {
#[derive(RefCast)]
@@ -2422,7 +2690,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ImplItemType");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("vis", Lite(&_val.vis));
if let Some(val) = &_val.defaultness {
#[derive(RefCast)]
@@ -2464,7 +2734,9 @@
match _val {
syn::Item::ExternCrate(_val) => {
let mut formatter = formatter.debug_struct("Item::ExternCrate");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("vis", Lite(&_val.vis));
formatter.field("ident", Lite(&_val.ident));
if let Some(val) = &_val.rename {
@@ -2487,7 +2759,9 @@
}
syn::Item::Use(_val) => {
let mut formatter = formatter.debug_struct("Item::Use");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("vis", Lite(&_val.vis));
if let Some(val) = &_val.leading_colon {
#[derive(RefCast)]
@@ -2506,7 +2780,9 @@
}
syn::Item::Static(_val) => {
let mut formatter = formatter.debug_struct("Item::Static");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("vis", Lite(&_val.vis));
if let Some(val) = &_val.mutability {
#[derive(RefCast)]
@@ -2527,7 +2803,9 @@
}
syn::Item::Const(_val) => {
let mut formatter = formatter.debug_struct("Item::Const");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("vis", Lite(&_val.vis));
formatter.field("ident", Lite(&_val.ident));
formatter.field("ty", Lite(&_val.ty));
@@ -2536,7 +2814,9 @@
}
syn::Item::Fn(_val) => {
let mut formatter = formatter.debug_struct("Item::Fn");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("vis", Lite(&_val.vis));
if let Some(val) = &_val.constness {
#[derive(RefCast)]
@@ -2597,7 +2877,9 @@
}
syn::Item::Mod(_val) => {
let mut formatter = formatter.debug_struct("Item::Mod");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("vis", Lite(&_val.vis));
formatter.field("ident", Lite(&_val.ident));
if let Some(val) = &_val.content {
@@ -2632,14 +2914,20 @@
}
syn::Item::ForeignMod(_val) => {
let mut formatter = formatter.debug_struct("Item::ForeignMod");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("abi", Lite(&_val.abi));
- formatter.field("items", Lite(&_val.items));
+ if !_val.items.is_empty() {
+ formatter.field("items", Lite(&_val.items));
+ }
formatter.finish()
}
syn::Item::Type(_val) => {
let mut formatter = formatter.debug_struct("Item::Type");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("vis", Lite(&_val.vis));
formatter.field("ident", Lite(&_val.ident));
formatter.field("generics", Lite(&_val.generics));
@@ -2648,7 +2936,9 @@
}
syn::Item::Existential(_val) => {
let mut formatter = formatter.debug_struct("Item::Existential");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("vis", Lite(&_val.vis));
formatter.field("ident", Lite(&_val.ident));
formatter.field("generics", Lite(&_val.generics));
@@ -2664,12 +2954,16 @@
}
formatter.field("colon_token", Print::ref_cast(val));
}
- formatter.field("bounds", Lite(&_val.bounds));
+ if !_val.bounds.is_empty() {
+ formatter.field("bounds", Lite(&_val.bounds));
+ }
formatter.finish()
}
syn::Item::Struct(_val) => {
let mut formatter = formatter.debug_struct("Item::Struct");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("vis", Lite(&_val.vis));
formatter.field("ident", Lite(&_val.ident));
formatter.field("generics", Lite(&_val.generics));
@@ -2690,16 +2984,22 @@
}
syn::Item::Enum(_val) => {
let mut formatter = formatter.debug_struct("Item::Enum");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("vis", Lite(&_val.vis));
formatter.field("ident", Lite(&_val.ident));
formatter.field("generics", Lite(&_val.generics));
- formatter.field("variants", Lite(&_val.variants));
+ if !_val.variants.is_empty() {
+ formatter.field("variants", Lite(&_val.variants));
+ }
formatter.finish()
}
syn::Item::Union(_val) => {
let mut formatter = formatter.debug_struct("Item::Union");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("vis", Lite(&_val.vis));
formatter.field("ident", Lite(&_val.ident));
formatter.field("generics", Lite(&_val.generics));
@@ -2708,7 +3008,9 @@
}
syn::Item::Trait(_val) => {
let mut formatter = formatter.debug_struct("Item::Trait");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("vis", Lite(&_val.vis));
if let Some(val) = &_val.unsafety {
#[derive(RefCast)]
@@ -2748,22 +3050,32 @@
}
formatter.field("colon_token", Print::ref_cast(val));
}
- formatter.field("supertraits", Lite(&_val.supertraits));
- formatter.field("items", Lite(&_val.items));
+ if !_val.supertraits.is_empty() {
+ formatter.field("supertraits", Lite(&_val.supertraits));
+ }
+ if !_val.items.is_empty() {
+ formatter.field("items", Lite(&_val.items));
+ }
formatter.finish()
}
syn::Item::TraitAlias(_val) => {
let mut formatter = formatter.debug_struct("Item::TraitAlias");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("vis", Lite(&_val.vis));
formatter.field("ident", Lite(&_val.ident));
formatter.field("generics", Lite(&_val.generics));
- formatter.field("bounds", Lite(&_val.bounds));
+ if !_val.bounds.is_empty() {
+ formatter.field("bounds", Lite(&_val.bounds));
+ }
formatter.finish()
}
syn::Item::Impl(_val) => {
let mut formatter = formatter.debug_struct("Item::Impl");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
if let Some(val) = &_val.defaultness {
#[derive(RefCast)]
#[repr(transparent)]
@@ -2832,12 +3144,16 @@
formatter.field("trait_", Print::ref_cast(val));
}
formatter.field("self_ty", Lite(&_val.self_ty));
- formatter.field("items", Lite(&_val.items));
+ if !_val.items.is_empty() {
+ formatter.field("items", Lite(&_val.items));
+ }
formatter.finish()
}
syn::Item::Macro(_val) => {
let mut formatter = formatter.debug_struct("Item::Macro");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
if let Some(val) = &_val.ident {
#[derive(RefCast)]
#[repr(transparent)]
@@ -2871,7 +3187,9 @@
}
syn::Item::Macro2(_val) => {
let mut formatter = formatter.debug_struct("Item::Macro2");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("vis", Lite(&_val.vis));
formatter.field("ident", Lite(&_val.ident));
formatter.field("args", Lite(&_val.args));
@@ -2890,7 +3208,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ItemConst");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("vis", Lite(&_val.vis));
formatter.field("ident", Lite(&_val.ident));
formatter.field("ty", Lite(&_val.ty));
@@ -2902,11 +3222,15 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ItemEnum");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("vis", Lite(&_val.vis));
formatter.field("ident", Lite(&_val.ident));
formatter.field("generics", Lite(&_val.generics));
- formatter.field("variants", Lite(&_val.variants));
+ if !_val.variants.is_empty() {
+ formatter.field("variants", Lite(&_val.variants));
+ }
formatter.finish()
}
}
@@ -2914,7 +3238,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ItemExistential");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("vis", Lite(&_val.vis));
formatter.field("ident", Lite(&_val.ident));
formatter.field("generics", Lite(&_val.generics));
@@ -2930,7 +3256,9 @@
}
formatter.field("colon_token", Print::ref_cast(val));
}
- formatter.field("bounds", Lite(&_val.bounds));
+ if !_val.bounds.is_empty() {
+ formatter.field("bounds", Lite(&_val.bounds));
+ }
formatter.finish()
}
}
@@ -2938,7 +3266,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ItemExternCrate");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("vis", Lite(&_val.vis));
formatter.field("ident", Lite(&_val.ident));
if let Some(val) = &_val.rename {
@@ -2964,7 +3294,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ItemFn");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("vis", Lite(&_val.vis));
if let Some(val) = &_val.constness {
#[derive(RefCast)]
@@ -3028,9 +3360,13 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ItemForeignMod");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("abi", Lite(&_val.abi));
- formatter.field("items", Lite(&_val.items));
+ if !_val.items.is_empty() {
+ formatter.field("items", Lite(&_val.items));
+ }
formatter.finish()
}
}
@@ -3038,7 +3374,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ItemImpl");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
if let Some(val) = &_val.defaultness {
#[derive(RefCast)]
#[repr(transparent)]
@@ -3103,7 +3441,9 @@
formatter.field("trait_", Print::ref_cast(val));
}
formatter.field("self_ty", Lite(&_val.self_ty));
- formatter.field("items", Lite(&_val.items));
+ if !_val.items.is_empty() {
+ formatter.field("items", Lite(&_val.items));
+ }
formatter.finish()
}
}
@@ -3111,7 +3451,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ItemMacro");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
if let Some(val) = &_val.ident {
#[derive(RefCast)]
#[repr(transparent)]
@@ -3148,7 +3490,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ItemMacro2");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("vis", Lite(&_val.vis));
formatter.field("ident", Lite(&_val.ident));
formatter.field("args", Lite(&_val.args));
@@ -3160,7 +3504,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ItemMod");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("vis", Lite(&_val.vis));
formatter.field("ident", Lite(&_val.ident));
if let Some(val) = &_val.content {
@@ -3198,7 +3544,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ItemStatic");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("vis", Lite(&_val.vis));
if let Some(val) = &_val.mutability {
#[derive(RefCast)]
@@ -3222,7 +3570,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ItemStruct");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("vis", Lite(&_val.vis));
formatter.field("ident", Lite(&_val.ident));
formatter.field("generics", Lite(&_val.generics));
@@ -3246,7 +3596,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ItemTrait");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("vis", Lite(&_val.vis));
if let Some(val) = &_val.unsafety {
#[derive(RefCast)]
@@ -3286,8 +3638,12 @@
}
formatter.field("colon_token", Print::ref_cast(val));
}
- formatter.field("supertraits", Lite(&_val.supertraits));
- formatter.field("items", Lite(&_val.items));
+ if !_val.supertraits.is_empty() {
+ formatter.field("supertraits", Lite(&_val.supertraits));
+ }
+ if !_val.items.is_empty() {
+ formatter.field("items", Lite(&_val.items));
+ }
formatter.finish()
}
}
@@ -3295,11 +3651,15 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ItemTraitAlias");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("vis", Lite(&_val.vis));
formatter.field("ident", Lite(&_val.ident));
formatter.field("generics", Lite(&_val.generics));
- formatter.field("bounds", Lite(&_val.bounds));
+ if !_val.bounds.is_empty() {
+ formatter.field("bounds", Lite(&_val.bounds));
+ }
formatter.finish()
}
}
@@ -3307,7 +3667,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ItemType");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("vis", Lite(&_val.vis));
formatter.field("ident", Lite(&_val.ident));
formatter.field("generics", Lite(&_val.generics));
@@ -3319,7 +3681,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ItemUnion");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("vis", Lite(&_val.vis));
formatter.field("ident", Lite(&_val.ident));
formatter.field("generics", Lite(&_val.generics));
@@ -3331,7 +3695,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ItemUse");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("vis", Lite(&_val.vis));
if let Some(val) = &_val.leading_colon {
#[derive(RefCast)]
@@ -3377,7 +3743,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("LifetimeDef");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("lifetime", Lite(&_val.lifetime));
if let Some(val) = &_val.colon_token {
#[derive(RefCast)]
@@ -3391,7 +3759,9 @@
}
formatter.field("colon_token", Print::ref_cast(val));
}
- formatter.field("bounds", Lite(&_val.bounds));
+ if !_val.bounds.is_empty() {
+ formatter.field("bounds", Lite(&_val.bounds));
+ }
formatter.finish()
}
}
@@ -3474,8 +3844,12 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("Local");
- formatter.field("attrs", Lite(&_val.attrs));
- formatter.field("pats", Lite(&_val.pats));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
+ if !_val.pats.is_empty() {
+ formatter.field("pats", Lite(&_val.pats));
+ }
if let Some(val) = &_val.ty {
#[derive(RefCast)]
#[repr(transparent)]
@@ -3569,7 +3943,9 @@
syn::Meta::List(_val) => {
let mut formatter = formatter.debug_struct("Meta::List");
formatter.field("ident", Lite(&_val.ident));
- formatter.field("nested", Lite(&_val.nested));
+ if !_val.nested.is_empty() {
+ formatter.field("nested", Lite(&_val.nested));
+ }
formatter.finish()
}
syn::Meta::NameValue(_val) => {
@@ -3586,7 +3962,9 @@
let _val = &self.value;
let mut formatter = formatter.debug_struct("MetaList");
formatter.field("ident", Lite(&_val.ident));
- formatter.field("nested", Lite(&_val.nested));
+ if !_val.nested.is_empty() {
+ formatter.field("nested", Lite(&_val.nested));
+ }
formatter.finish()
}
}
@@ -3664,7 +4042,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("MethodTurbofish");
- formatter.field("args", Lite(&_val.args));
+ if !_val.args.is_empty() {
+ formatter.field("args", Lite(&_val.args));
+ }
formatter.finish()
}
}
@@ -3689,7 +4069,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("ParenthesizedGenericArguments");
- formatter.field("inputs", Lite(&_val.inputs));
+ if !_val.inputs.is_empty() {
+ formatter.field("inputs", Lite(&_val.inputs));
+ }
formatter.field("output", Lite(&_val.output));
formatter.finish()
}
@@ -3750,7 +4132,9 @@
syn::Pat::Struct(_val) => {
let mut formatter = formatter.debug_struct("Pat::Struct");
formatter.field("path", Lite(&_val.path));
- formatter.field("fields", Lite(&_val.fields));
+ if !_val.fields.is_empty() {
+ formatter.field("fields", Lite(&_val.fields));
+ }
if let Some(val) = &_val.dot2_token {
#[derive(RefCast)]
#[repr(transparent)]
@@ -3794,7 +4178,9 @@
}
syn::Pat::Tuple(_val) => {
let mut formatter = formatter.debug_struct("Pat::Tuple");
- formatter.field("front", Lite(&_val.front));
+ if !_val.front.is_empty() {
+ formatter.field("front", Lite(&_val.front));
+ }
if let Some(val) = &_val.dot2_token {
#[derive(RefCast)]
#[repr(transparent)]
@@ -3819,7 +4205,9 @@
}
formatter.field("comma_token", Print::ref_cast(val));
}
- formatter.field("back", Lite(&_val.back));
+ if !_val.back.is_empty() {
+ formatter.field("back", Lite(&_val.back));
+ }
formatter.finish()
}
syn::Pat::Box(_val) => {
@@ -3858,7 +4246,9 @@
}
syn::Pat::Slice(_val) => {
let mut formatter = formatter.debug_struct("Pat::Slice");
- formatter.field("front", Lite(&_val.front));
+ if !_val.front.is_empty() {
+ formatter.field("front", Lite(&_val.front));
+ }
if let Some(val) = &_val.middle {
#[derive(RefCast)]
#[repr(transparent)]
@@ -3899,7 +4289,9 @@
}
formatter.field("comma_token", Print::ref_cast(val));
}
- formatter.field("back", Lite(&_val.back));
+ if !_val.back.is_empty() {
+ formatter.field("back", Lite(&_val.back));
+ }
formatter.finish()
}
syn::Pat::Macro(_val) => {
@@ -4045,7 +4437,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("PatSlice");
- formatter.field("front", Lite(&_val.front));
+ if !_val.front.is_empty() {
+ formatter.field("front", Lite(&_val.front));
+ }
if let Some(val) = &_val.middle {
#[derive(RefCast)]
#[repr(transparent)]
@@ -4086,7 +4480,9 @@
}
formatter.field("comma_token", Print::ref_cast(val));
}
- formatter.field("back", Lite(&_val.back));
+ if !_val.back.is_empty() {
+ formatter.field("back", Lite(&_val.back));
+ }
formatter.finish()
}
}
@@ -4095,7 +4491,9 @@
let _val = &self.value;
let mut formatter = formatter.debug_struct("PatStruct");
formatter.field("path", Lite(&_val.path));
- formatter.field("fields", Lite(&_val.fields));
+ if !_val.fields.is_empty() {
+ formatter.field("fields", Lite(&_val.fields));
+ }
if let Some(val) = &_val.dot2_token {
#[derive(RefCast)]
#[repr(transparent)]
@@ -4115,7 +4513,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("PatTuple");
- formatter.field("front", Lite(&_val.front));
+ if !_val.front.is_empty() {
+ formatter.field("front", Lite(&_val.front));
+ }
if let Some(val) = &_val.dot2_token {
#[derive(RefCast)]
#[repr(transparent)]
@@ -4140,7 +4540,9 @@
}
formatter.field("comma_token", Print::ref_cast(val));
}
- formatter.field("back", Lite(&_val.back));
+ if !_val.back.is_empty() {
+ formatter.field("back", Lite(&_val.back));
+ }
formatter.finish()
}
}
@@ -4184,7 +4586,9 @@
}
formatter.field("leading_colon", Print::ref_cast(val));
}
- formatter.field("segments", Lite(&_val.segments));
+ if !_val.segments.is_empty() {
+ formatter.field("segments", Lite(&_val.segments));
+ }
formatter.finish()
}
}
@@ -4229,7 +4633,9 @@
let _val = &self.value;
let mut formatter = formatter.debug_struct("PredicateLifetime");
formatter.field("lifetime", Lite(&_val.lifetime));
- formatter.field("bounds", Lite(&_val.bounds));
+ if !_val.bounds.is_empty() {
+ formatter.field("bounds", Lite(&_val.bounds));
+ }
formatter.finish()
}
}
@@ -4254,7 +4660,9 @@
formatter.field("lifetimes", Print::ref_cast(val));
}
formatter.field("bounded_ty", Lite(&_val.bounded_ty));
- formatter.field("bounds", Lite(&_val.bounds));
+ if !_val.bounds.is_empty() {
+ formatter.field("bounds", Lite(&_val.bounds));
+ }
formatter.finish()
}
}
@@ -4389,7 +4797,9 @@
match _val {
syn::TraitItem::Const(_val) => {
let mut formatter = formatter.debug_struct("TraitItem::Const");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("ident", Lite(&_val.ident));
formatter.field("ty", Lite(&_val.ty));
if let Some(val) = &_val.default {
@@ -4412,7 +4822,9 @@
}
syn::TraitItem::Method(_val) => {
let mut formatter = formatter.debug_struct("TraitItem::Method");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("sig", Lite(&_val.sig));
if let Some(val) = &_val.default {
#[derive(RefCast)]
@@ -4446,7 +4858,9 @@
}
syn::TraitItem::Type(_val) => {
let mut formatter = formatter.debug_struct("TraitItem::Type");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("ident", Lite(&_val.ident));
formatter.field("generics", Lite(&_val.generics));
if let Some(val) = &_val.colon_token {
@@ -4461,7 +4875,9 @@
}
formatter.field("colon_token", Print::ref_cast(val));
}
- formatter.field("bounds", Lite(&_val.bounds));
+ if !_val.bounds.is_empty() {
+ formatter.field("bounds", Lite(&_val.bounds));
+ }
if let Some(val) = &_val.default {
#[derive(RefCast)]
#[repr(transparent)]
@@ -4482,7 +4898,9 @@
}
syn::TraitItem::Macro(_val) => {
let mut formatter = formatter.debug_struct("TraitItem::Macro");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("mac", Lite(&_val.mac));
if let Some(val) = &_val.semi_token {
#[derive(RefCast)]
@@ -4510,7 +4928,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("TraitItemConst");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("ident", Lite(&_val.ident));
formatter.field("ty", Lite(&_val.ty));
if let Some(val) = &_val.default {
@@ -4536,7 +4956,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("TraitItemMacro");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("mac", Lite(&_val.mac));
if let Some(val) = &_val.semi_token {
#[derive(RefCast)]
@@ -4557,7 +4979,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("TraitItemMethod");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("sig", Lite(&_val.sig));
if let Some(val) = &_val.default {
#[derive(RefCast)]
@@ -4594,7 +5018,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("TraitItemType");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("ident", Lite(&_val.ident));
formatter.field("generics", Lite(&_val.generics));
if let Some(val) = &_val.colon_token {
@@ -4609,7 +5035,9 @@
}
formatter.field("colon_token", Print::ref_cast(val));
}
- formatter.field("bounds", Lite(&_val.bounds));
+ if !_val.bounds.is_empty() {
+ formatter.field("bounds", Lite(&_val.bounds));
+ }
if let Some(val) = &_val.default {
#[derive(RefCast)]
#[repr(transparent)]
@@ -4760,7 +5188,9 @@
}
formatter.field("abi", Print::ref_cast(val));
}
- formatter.field("inputs", Lite(&_val.inputs));
+ if !_val.inputs.is_empty() {
+ formatter.field("inputs", Lite(&_val.inputs));
+ }
if let Some(val) = &_val.variadic {
#[derive(RefCast)]
#[repr(transparent)]
@@ -4782,7 +5212,9 @@
}
syn::Type::Tuple(_val) => {
let mut formatter = formatter.debug_struct("Type::Tuple");
- formatter.field("elems", Lite(&_val.elems));
+ if !_val.elems.is_empty() {
+ formatter.field("elems", Lite(&_val.elems));
+ }
formatter.finish()
}
syn::Type::Path(_val) => {
@@ -4820,12 +5252,16 @@
}
formatter.field("dyn_token", Print::ref_cast(val));
}
- formatter.field("bounds", Lite(&_val.bounds));
+ if !_val.bounds.is_empty() {
+ formatter.field("bounds", Lite(&_val.bounds));
+ }
formatter.finish()
}
syn::Type::ImplTrait(_val) => {
let mut formatter = formatter.debug_struct("Type::ImplTrait");
- formatter.field("bounds", Lite(&_val.bounds));
+ if !_val.bounds.is_empty() {
+ formatter.field("bounds", Lite(&_val.bounds));
+ }
formatter.finish()
}
syn::Type::Paren(_val) => {
@@ -4912,7 +5348,9 @@
}
formatter.field("abi", Print::ref_cast(val));
}
- formatter.field("inputs", Lite(&_val.inputs));
+ if !_val.inputs.is_empty() {
+ formatter.field("inputs", Lite(&_val.inputs));
+ }
if let Some(val) = &_val.variadic {
#[derive(RefCast)]
#[repr(transparent)]
@@ -4941,7 +5379,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("TypeImplTrait");
- formatter.field("bounds", Lite(&_val.bounds));
+ if !_val.bounds.is_empty() {
+ formatter.field("bounds", Lite(&_val.bounds));
+ }
formatter.finish()
}
}
@@ -4971,7 +5411,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("TypeParam");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("ident", Lite(&_val.ident));
if let Some(val) = &_val.colon_token {
#[derive(RefCast)]
@@ -4985,7 +5427,9 @@
}
formatter.field("colon_token", Print::ref_cast(val));
}
- formatter.field("bounds", Lite(&_val.bounds));
+ if !_val.bounds.is_empty() {
+ formatter.field("bounds", Lite(&_val.bounds));
+ }
if let Some(val) = &_val.eq_token {
#[derive(RefCast)]
#[repr(transparent)]
@@ -5158,7 +5602,9 @@
}
formatter.field("dyn_token", Print::ref_cast(val));
}
- formatter.field("bounds", Lite(&_val.bounds));
+ if !_val.bounds.is_empty() {
+ formatter.field("bounds", Lite(&_val.bounds));
+ }
formatter.finish()
}
}
@@ -5166,7 +5612,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("TypeTuple");
- formatter.field("elems", Lite(&_val.elems));
+ if !_val.elems.is_empty() {
+ formatter.field("elems", Lite(&_val.elems));
+ }
formatter.finish()
}
}
@@ -5208,7 +5656,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("UseGroup");
- formatter.field("items", Lite(&_val.items));
+ if !_val.items.is_empty() {
+ formatter.field("items", Lite(&_val.items));
+ }
formatter.finish()
}
}
@@ -5274,7 +5724,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("Variant");
- formatter.field("attrs", Lite(&_val.attrs));
+ if !_val.attrs.is_empty() {
+ formatter.field("attrs", Lite(&_val.attrs));
+ }
formatter.field("ident", Lite(&_val.ident));
formatter.field("fields", Lite(&_val.fields));
if let Some(val) = &_val.discriminant {
@@ -5357,7 +5809,9 @@
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
let _val = &self.value;
let mut formatter = formatter.debug_struct("WhereClause");
- formatter.field("predicates", Lite(&_val.predicates));
+ if !_val.predicates.is_empty() {
+ formatter.field("predicates", Lite(&_val.predicates));
+ }
formatter.finish()
}
}
diff --git a/tests/test_derive_input.rs b/tests/test_derive_input.rs
index 57f800b..bf4440b 100644
--- a/tests/test_derive_input.rs
+++ b/tests/test_derive_input.rs
@@ -17,12 +17,9 @@
snapshot!(code as DeriveInput, @r###"
⋮DeriveInput {
- ⋮ attrs: [],
⋮ vis: Inherited,
⋮ ident: "Unit",
- ⋮ generics: Generics {
- ⋮ params: [],
- ⋮ },
+ ⋮ generics: Generics,
⋮ data: Data::Struct {
⋮ fields: Unit,
⋮ semi_token: Some,
@@ -62,14 +59,11 @@
⋮ VisPublic,
⋮ ),
⋮ ident: "Item",
- ⋮ generics: Generics {
- ⋮ params: [],
- ⋮ },
+ ⋮ generics: Generics,
⋮ data: Data::Struct {
⋮ fields: Fields::Named {
⋮ named: [
⋮ Field {
- ⋮ attrs: [],
⋮ vis: Public(
⋮ VisPublic,
⋮ ),
@@ -87,7 +81,6 @@
⋮ },
⋮ },
⋮ Field {
- ⋮ attrs: [],
⋮ vis: Public(
⋮ VisPublic,
⋮ ),