Parse delimiter before contents
diff --git a/src/gen/fold.rs b/src/gen/fold.rs
index 8580952..14e4575 100644
--- a/src/gen/fold.rs
+++ b/src/gen/fold.rs
@@ -2727,14 +2727,14 @@
     match _i {
         VariantData::Struct(_binding_0, _binding_1, ) => {
             VariantData::Struct (
-                FoldHelper::lift(_binding_0, |it| { _visitor.fold_field(it) }),
-                Brace(tokens_helper(_visitor, &(_binding_1).0)),
+                Brace(tokens_helper(_visitor, &(_binding_0).0)),
+                FoldHelper::lift(_binding_1, |it| { _visitor.fold_field(it) }),
             )
         }
         VariantData::Tuple(_binding_0, _binding_1, ) => {
             VariantData::Tuple (
-                FoldHelper::lift(_binding_0, |it| { _visitor.fold_field(it) }),
-                Paren(tokens_helper(_visitor, &(_binding_1).0)),
+                Paren(tokens_helper(_visitor, &(_binding_0).0)),
+                FoldHelper::lift(_binding_1, |it| { _visitor.fold_field(it) }),
             )
         }
         VariantData::Unit => { VariantData::Unit }
diff --git a/src/gen/visit.rs b/src/gen/visit.rs
index 56ac2c8..4f73cb2 100644
--- a/src/gen/visit.rs
+++ b/src/gen/visit.rs
@@ -2097,12 +2097,12 @@
 pub fn visit_variant_data<'ast, V: Visitor<'ast> + ?Sized>(_visitor: &mut V, _i: &'ast VariantData) {
     match *_i {
         VariantData::Struct(ref _binding_0, ref _binding_1, ) => {
-            for el in _binding_0 { let it = el.item(); _visitor.visit_field(it) };
-            tokens_helper(_visitor, &(_binding_1).0);
+            tokens_helper(_visitor, &(_binding_0).0);
+            for el in _binding_1 { let it = el.item(); _visitor.visit_field(it) };
         }
         VariantData::Tuple(ref _binding_0, ref _binding_1, ) => {
-            for el in _binding_0 { let it = el.item(); _visitor.visit_field(it) };
-            tokens_helper(_visitor, &(_binding_1).0);
+            tokens_helper(_visitor, &(_binding_0).0);
+            for el in _binding_1 { let it = el.item(); _visitor.visit_field(it) };
         }
         VariantData::Unit => { }
     }
diff --git a/src/gen/visit_mut.rs b/src/gen/visit_mut.rs
index 94fd73f..812a4f1 100644
--- a/src/gen/visit_mut.rs
+++ b/src/gen/visit_mut.rs
@@ -2097,12 +2097,12 @@
 pub fn visit_variant_data_mut<V: VisitorMut + ?Sized>(_visitor: &mut V, _i: &mut VariantData) {
     match *_i {
         VariantData::Struct(ref mut _binding_0, ref mut _binding_1, ) => {
-            for mut el in _binding_0 { let it = el.item_mut(); _visitor.visit_field_mut(it) };
-            tokens_helper(_visitor, &mut (_binding_1).0);
+            tokens_helper(_visitor, &mut (_binding_0).0);
+            for mut el in _binding_1 { let it = el.item_mut(); _visitor.visit_field_mut(it) };
         }
         VariantData::Tuple(ref mut _binding_0, ref mut _binding_1, ) => {
-            for mut el in _binding_0 { let it = el.item_mut(); _visitor.visit_field_mut(it) };
-            tokens_helper(_visitor, &mut (_binding_1).0);
+            tokens_helper(_visitor, &mut (_binding_0).0);
+            for mut el in _binding_1 { let it = el.item_mut(); _visitor.visit_field_mut(it) };
         }
         VariantData::Unit => { }
     }