Rollup merge of #60562 - iliekturtles:proc-macro-missing-docs, r=alexcrichton

Add #[doc(hidden)] attribute on compiler generated module.

Resolves unavoidable `missing_docs` warning/error on proc-macro crates.
Resolves #42008.

Changes not yet tested locally, however I wanted to submit first since `rustc` takes forever to compile.
This commit is contained in:
Mazdak Farrokhzad 2019-05-13 21:36:52 +02:00 committed by GitHub
commit e952b52a16
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 22 additions and 1 deletions

View File

@ -328,6 +328,7 @@ impl<'a> Visitor<'a> for CollectProcMacros<'a> {
// Creates a new module which looks like:
//
// #[doc(hidden)]
// mod $gensym {
// extern crate proc_macro;
//
@ -361,6 +362,10 @@ fn mk_decls(
});
let span = DUMMY_SP.apply_mark(mark);
let hidden = cx.meta_list_item_word(span, Symbol::intern("hidden"));
let doc = cx.meta_list(span, Symbol::intern("doc"), vec![hidden]);
let doc_hidden = cx.attribute(span, doc);
let proc_macro = Ident::from_str("proc_macro");
let krate = cx.item(span,
proc_macro,
@ -425,7 +430,7 @@ fn mk_decls(
span,
span,
ast::Ident::with_empty_ctxt(Symbol::gensym("decls")),
vec![],
vec![doc_hidden],
vec![krate, decls_static],
).map(|mut i| {
i.vis = respan(span, ast::VisibilityKind::Public);

View File

@ -0,0 +1,16 @@
//! Verify that the `decls` module implicitly added by the compiler does not cause `missing_docs`
//! warnings.
// compile-pass
// force-host
// no-prefer-dynamic
#![crate_type = "proc-macro"]
#![deny(missing_docs)]
extern crate proc_macro;
use proc_macro::*;
/// Foo1.
#[proc_macro]
pub fn foo1(input: TokenStream) -> TokenStream { input }