Add lint for pub fns returning a Result
without documenting errors
The Rust Book recommends that functions that return a `Result` type have a doc comment with an `# Errors` section describing the kind of errors that can be returned (https://doc.rust-lang.org/book/ch14-02-publishing-to-crates-io.html#commonly-used-sections). This change adds a lint to enforce this. The lint is allow by default; it can be enabled with `#![warn(clippy::missing_errors_doc)]`. Closes #4854.
This commit is contained in:
parent
ff1607ea4a
commit
f5d0a452ba
7 changed files with 202 additions and 47 deletions
64
tests/ui/doc_errors.rs
Normal file
64
tests/ui/doc_errors.rs
Normal file
|
@ -0,0 +1,64 @@
|
|||
#![warn(clippy::missing_errors_doc)]
|
||||
|
||||
use std::io;
|
||||
|
||||
pub fn pub_fn_missing_errors_header() -> Result<(), ()> {
|
||||
unimplemented!();
|
||||
}
|
||||
|
||||
/// This is not sufficiently documented.
|
||||
pub fn pub_fn_returning_io_result() -> io::Result<()> {
|
||||
unimplemented!();
|
||||
}
|
||||
|
||||
/// # Errors
|
||||
/// A description of the errors goes here.
|
||||
pub fn 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!();
|
||||
}
|
||||
|
||||
pub struct Struct1;
|
||||
|
||||
impl Struct1 {
|
||||
/// This is not sufficiently documented.
|
||||
pub fn pub_method_missing_errors_header() -> Result<(), ()> {
|
||||
unimplemented!();
|
||||
}
|
||||
|
||||
/// # Errors
|
||||
/// A description of the errors goes here.
|
||||
pub fn 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!();
|
||||
}
|
||||
}
|
||||
|
||||
pub trait Trait1 {
|
||||
/// This is not sufficiently documented.
|
||||
fn trait_method_missing_errors_header() -> Result<(), ()>;
|
||||
|
||||
/// # Errors
|
||||
/// A description of the errors goes here.
|
||||
fn trait_method_with_errors_header() -> Result<(), ()>;
|
||||
}
|
||||
|
||||
impl Trait1 for Struct1 {
|
||||
fn trait_method_missing_errors_header() -> Result<(), ()> {
|
||||
unimplemented!();
|
||||
}
|
||||
|
||||
fn trait_method_with_errors_header() -> Result<(), ()> {
|
||||
unimplemented!();
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {}
|
Loading…
Add table
Add a link
Reference in a new issue