about summary refs log tree commit diff
path: root/tests/ui/doc_errors.rs
blob: f67e3216c01e8180977c3a8b2b2c8dbbe8c1724e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
#![warn(clippy::missing_errors_doc)]
#![allow(clippy::result_unit_err)]
#![allow(clippy::unnecessary_wraps)]

use std::io;

pub fn pub_fn_missing_errors_header() -> Result<(), ()> {
    //~^ missing_errors_doc

    unimplemented!();
}

pub async fn async_pub_fn_missing_errors_header() -> Result<(), ()> {
    //~^ missing_errors_doc

    unimplemented!();
}

/// This is not sufficiently documented.
pub fn pub_fn_returning_io_result() -> io::Result<()> {
    //~^ missing_errors_doc

    unimplemented!();
}

/// This is not sufficiently documented.
pub async fn async_pub_fn_returning_io_result() -> io::Result<()> {
    //~^ missing_errors_doc

    unimplemented!();
}

/// # Errors
/// A description of the errors goes here.
pub fn pub_fn_with_errors_header() -> Result<(), ()> {
    unimplemented!();
}

/// # Errors
/// A description of the errors goes here.
pub async fn async_pub_fn_with_errors_header() -> Result<(), ()> {
    unimplemented!();
}

/// This function doesn't require the documentation because it is private
fn priv_fn_missing_errors_header() -> Result<(), ()> {
    unimplemented!();
}

/// This function doesn't require the documentation because it is private
async fn async_priv_fn_missing_errors_header() -> Result<(), ()> {
    unimplemented!();
}

pub struct Struct1;

impl Struct1 {
    /// This is not sufficiently documented.
    pub fn pub_method_missing_errors_header() -> Result<(), ()> {
        //~^ missing_errors_doc

        unimplemented!();
    }

    /// This is not sufficiently documented.
    pub async fn async_pub_method_missing_errors_header() -> Result<(), ()> {
        //~^ missing_errors_doc

        unimplemented!();
    }

    /// # Errors
    /// A description of the errors goes here.
    pub fn pub_method_with_errors_header() -> Result<(), ()> {
        unimplemented!();
    }

    /// # Errors
    /// A description of the errors goes here.
    pub async fn async_pub_method_with_errors_header() -> Result<(), ()> {
        unimplemented!();
    }

    /// This function doesn't require the documentation because it is private.
    fn priv_method_missing_errors_header() -> Result<(), ()> {
        unimplemented!();
    }

    /// This function doesn't require the documentation because it is private.
    async fn async_priv_method_missing_errors_header() -> Result<(), ()> {
        unimplemented!();
    }

    /**
    # Errors
    A description of the errors goes here.
    */
    fn block_comment() -> Result<(), ()> {
        unimplemented!();
    }

    /**
     * # Errors
     * A description of the errors goes here.
     */
    fn block_comment_leading_asterisks() -> Result<(), ()> {
        unimplemented!();
    }

    #[doc(hidden)]
    fn doc_hidden() -> Result<(), ()> {
        unimplemented!();
    }
}

pub trait Trait1 {
    /// This is not sufficiently documented.
    fn trait_method_missing_errors_header() -> Result<(), ()>;
    //~^ missing_errors_doc

    /// # Errors
    /// A description of the errors goes here.
    fn trait_method_with_errors_header() -> Result<(), ()>;

    #[doc(hidden)]
    fn doc_hidden() -> Result<(), ()> {
        unimplemented!();
    }
}

impl Trait1 for Struct1 {
    fn trait_method_missing_errors_header() -> Result<(), ()> {
        unimplemented!();
    }

    fn trait_method_with_errors_header() -> Result<(), ()> {
        unimplemented!();
    }
}

#[doc(hidden)]
pub trait DocHidden {
    fn f() -> Result<(), ()>;
}

fn main() -> Result<(), ()> {
    Ok(())
}