diff --git a/src/lib.rs b/src/lib.rs index 901a719..6ce1b1f 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -156,7 +156,7 @@ use crate::parse::{ use proc_macro::{Ident, Punct, Spacing, Span, TokenStream, TokenTree}; use std::fmt::Write; -type Visibility = Option; +type Visibility = Option; enum Input { Export(Export), @@ -250,7 +250,7 @@ fn expand_export(export: Export, args: ExportArgs) -> TokenStream { let dummy = dummy_name_for_export(&export); let attrs = export.attrs; - let ref vis = export.vis.map(|span| Ident::new("pub", span)); + let vis = export.vis; let macro_export = match vis { Some(_) => quote!(#[macro_export]), None => quote!(), diff --git a/src/parse.rs b/src/parse.rs index 7d98a43..de51fd2 100644 --- a/src/parse.rs +++ b/src/parse.rs @@ -139,7 +139,10 @@ fn parse_group(tokens: Iter, delimiter: Delimiter) -> Result { fn parse_visibility(tokens: Iter) -> Result { if let Some(TokenTree::Ident(ident)) = tokens.peek() { if ident.to_string() == "pub" { - return Ok(Some(tokens.next().unwrap().span())); + match tokens.next().unwrap() { + TokenTree::Ident(vis) => return Ok(Some(vis)), + _ => unreachable!(), + } } } Ok(None)