108 lines
1.7 KiB
Rust
108 lines
1.7 KiB
Rust
//@aux-build: proc_macros.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_macros;
|
|
use proc_macros::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;
|
|
}
|
|
);
|