Preserve doc attributes on struct fields
diff --git a/syntax/parse.rs b/syntax/parse.rs
index 4bfabcd..3d970d8 100644
--- a/syntax/parse.rs
+++ b/syntax/parse.rs
@@ -97,6 +97,15 @@
     let mut fields = Vec::new();
     for field in named_fields.named {
         let ident = field.ident.unwrap();
+        let mut doc = Doc::new();
+        attrs::parse(
+            cx,
+            &field.attrs,
+            attrs::Parser {
+                doc: Some(&mut doc),
+                ..Default::default()
+            },
+        );
         let ty = match parse_type(&field.ty) {
             Ok(ty) => ty,
             Err(err) => {
@@ -111,6 +120,7 @@
             Visibility::Inherited => ident.span(),
         });
         fields.push(Var {
+            doc,
             visibility,
             ident,
             ty,
@@ -527,8 +537,10 @@
                 };
                 let ty = parse_type(&arg.ty)?;
                 if ident != "self" {
+                    let doc = Doc::new();
                     let visibility = Token![pub](ident.span());
                     args.push_value(Var {
+                        doc,
                         visibility,
                         ident,
                         ty,
@@ -1098,8 +1110,10 @@
                 Some(ident) => ident.0.clone(),
                 None => format_ident!("arg{}", i),
             };
+            let doc = Doc::new();
             let visibility = Token![pub](ident.span());
             Ok(Var {
+                doc,
                 visibility,
                 ident,
                 ty,