Fix span placement on shared enums
diff --git a/syntax/mod.rs b/syntax/mod.rs
index da21204..0d07fd0 100644
--- a/syntax/mod.rs
+++ b/syntax/mod.rs
@@ -98,6 +98,7 @@
     pub doc: Doc,
     pub derives: Vec<Derive>,
     pub attrs: OtherAttrs,
+    pub visibility: Token![pub],
     pub enum_token: Token![enum],
     pub name: Pair,
     pub brace_token: Brace,
diff --git a/syntax/parse.rs b/syntax/parse.rs
index 5ce2cf3..b8bf515 100644
--- a/syntax/parse.rs
+++ b/syntax/parse.rs
@@ -194,6 +194,12 @@
         }
     }
 
+    let visibility = Token![pub](match item.vis {
+        Visibility::Public(vis) => vis.pub_token.span,
+        Visibility::Crate(vis) => vis.crate_token.span,
+        Visibility::Restricted(vis) => vis.pub_token.span,
+        Visibility::Inherited => item.ident.span(),
+    });
     let enum_token = item.enum_token;
     let brace_token = item.brace_token;
 
@@ -216,6 +222,7 @@
         doc,
         derives,
         attrs,
+        visibility,
         enum_token,
         name,
         brace_token,