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:
commit
e952b52a16
@ -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);
|
||||
|
16
src/test/ui/proc-macro/no-missing-docs.rs
Normal file
16
src/test/ui/proc-macro/no-missing-docs.rs
Normal 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 }
|
Loading…
x
Reference in New Issue
Block a user