Skip to content

Commit

Permalink
Rollup merge of #60562 - iliekturtles:proc-macro-missing-docs, r=alex…
Browse files Browse the repository at this point in the history
…crichton

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.
  • Loading branch information
Centril committed May 13, 2019
2 parents c8ef512 + 5ccf2fb commit e952b52
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 1 deletion.
7 changes: 6 additions & 1 deletion src/libsyntax_ext/proc_macro_decls.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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;
//
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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);
Expand Down
16 changes: 16 additions & 0 deletions src/test/ui/proc-macro/no-missing-docs.rs
Original file line number Diff line number Diff line change
@@ -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 }

0 comments on commit e952b52

Please sign in to comment.