diff --git a/src/macros.rs b/src/macros.rs index 46d2832526..795064febf 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -61,6 +61,9 @@ macro_rules! ast_enum_of_structs { $(#[$enum_attr])* $pub $enum $name $body ast_enum_of_structs_impl!($name $body); + + #[cfg(feature = "printing")] + generate_to_tokens!(() tokens $name $body); }; } @@ -70,26 +73,13 @@ macro_rules! ast_enum_of_structs_impl { $( $(#[cfg $cfg_attr:tt])* $(#[doc $($doc_attr:tt)*])* - $variant:ident $( ($($member:ident)::+) )*, + $variant:ident $( ($member:ident) )*, )* } ) => { $($( - ast_enum_from_struct!($name::$variant, $($member)::+); + ast_enum_from_struct!($name::$variant, $member); )*)* - - #[cfg(feature = "printing")] - generate_to_tokens! { - () - tokens - $name { - $( - $(#[cfg $cfg_attr])* - $(#[doc $($doc_attr)*])* - $variant $($($member)::+)*, - )* - } - } }; } @@ -126,7 +116,7 @@ macro_rules! generate_to_tokens { ($($arms:tt)*) $tokens:ident $name:ident { $(#[cfg $cfg_attr:tt])* $(#[doc $($doc_attr:tt)*])* - $variant:ident $member:ident, + $variant:ident($member:ident), $($next:tt)* } ) => {