From 890083d64fc0ee2ccf298be549827e9c0a975628 Mon Sep 17 00:00:00 2001 From: Bryan Henry Date: Sun, 13 Sep 2020 10:34:31 -0700 Subject: [PATCH] Preserve docs on aliases --- macro/src/expand.rs | 2 ++ syntax/mod.rs | 1 + syntax/parse.rs | 3 ++- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/macro/src/expand.rs b/macro/src/expand.rs index 955ad5f5..c35044b3 100644 --- a/macro/src/expand.rs +++ b/macro/src/expand.rs @@ -657,9 +657,11 @@ fn expand_rust_function_shim_impl( } fn expand_type_alias(alias: &TypeAlias) -> TokenStream { + let doc = &alias.doc; let ident = &alias.ident; let ty = &alias.ty; quote! { + #doc pub type #ident = #ty; } } diff --git a/syntax/mod.rs b/syntax/mod.rs index f52a582c..8ef3c8b9 100644 --- a/syntax/mod.rs +++ b/syntax/mod.rs @@ -79,6 +79,7 @@ pub struct ExternFn { } pub struct TypeAlias { + pub doc: Doc, pub type_token: Token![type], pub ident: Ident, pub eq_token: Token![=], diff --git a/syntax/parse.rs b/syntax/parse.rs index 3ac53047..c1c565fd 100644 --- a/syntax/parse.rs +++ b/syntax/parse.rs @@ -396,9 +396,10 @@ fn parse_extern_verbatim(cx: &mut Errors, tokens: &TokenStream, lang: Lang) -> R let eq_token: Token![=] = input.parse()?; let ty: RustType = input.parse()?; let semi_token: Token![;] = input.parse()?; - attrs::parse_doc(cx, &attrs); + let doc = attrs::parse_doc(cx, &attrs); Ok(TypeAlias { + doc, type_token, ident, eq_token,