Fix span placement on extern functions
diff --git a/syntax/mod.rs b/syntax/mod.rs
index 12904c3..4dd18ea 100644
--- a/syntax/mod.rs
+++ b/syntax/mod.rs
@@ -113,6 +113,7 @@
pub lang: Lang,
pub doc: Doc,
pub attrs: OtherAttrs,
+ pub visibility: Token![pub],
pub name: Pair,
pub sig: Signature,
pub semi_token: Token![;],
diff --git a/syntax/parse.rs b/syntax/parse.rs
index 17c216d..0ef0b0b 100644
--- a/syntax/parse.rs
+++ b/syntax/parse.rs
@@ -597,6 +597,12 @@
let mut throws_tokens = None;
let ret = parse_return_type(&foreign_fn.sig.output, &mut throws_tokens)?;
let throws = throws_tokens.is_some();
+ let visibility = Token => vis.pub_token.span,
+ Visibility::Crate(vis) => vis.crate_token.span,
+ Visibility::Restricted(vis) => vis.pub_token.span,
+ Visibility::Inherited => foreign_fn.sig.ident.span(),
+ });
let unsafety = foreign_fn.sig.unsafety;
let fn_token = foreign_fn.sig.fn_token;
let name = pair(namespace, &foreign_fn.sig.ident, cxx_name, rust_name);
@@ -611,6 +617,7 @@
lang,
doc,
attrs,
+ visibility,
name,
sig: Signature {
unsafety,