// aux-build: proc_macro_with_span.rs #![warn(clippy::missing_docs_in_private_items)] #![allow(dead_code)] #![feature(associated_type_defaults)] //! Some garbage docs for the crate here #![doc = "More garbage"] extern crate proc_macro_with_span; use proc_macro_with_span::with_span; struct Foo { a: isize, b: isize, } pub struct PubFoo { pub a: isize, b: isize, } #[allow(clippy::missing_docs_in_private_items)] pub struct PubFoo2 { pub a: isize, pub c: isize, } /// dox pub trait A { /// dox fn foo(&self); /// dox fn foo_with_impl(&self) {} } #[allow(clippy::missing_docs_in_private_items)] trait B { fn foo(&self); fn foo_with_impl(&self) {} } pub trait C { fn foo(&self); fn foo_with_impl(&self) {} } #[allow(clippy::missing_docs_in_private_items)] pub trait D { fn dummy(&self) {} } /// dox pub trait E: Sized { type AssociatedType; type AssociatedTypeDef = Self; /// dox type DocumentedType; /// dox type DocumentedTypeDef = Self; /// dox fn dummy(&self) {} } impl Foo { pub fn new() -> Self { Foo { a: 0, b: 0 } } fn bar() {} } impl PubFoo { pub fn foo() {} /// dox pub fn foo1() {} #[must_use = "yep"] fn foo2() -> u32 { 1 } #[allow(clippy::missing_docs_in_private_items)] pub fn foo3() {} } #[allow(clippy::missing_docs_in_private_items)] trait F { fn a(); fn b(&self); } // should need to redefine documentation for implementations of traits impl F for Foo { fn a() {} fn b(&self) {} } fn main() {} // don't lint proc macro output with_span!(span pub struct FooPm; impl FooPm { pub fn foo() {} pub const fn bar() {} pub const X: u32 = 0; } );