Skip to content

Commit

Permalink
add a lint group for lints emitted by rustdoc
Browse files Browse the repository at this point in the history
  • Loading branch information
QuietMisdreavus committed Dec 10, 2018
1 parent 1137d29 commit 48c17a0
Show file tree
Hide file tree
Showing 3 changed files with 87 additions and 0 deletions.
9 changes: 9 additions & 0 deletions src/librustc_lint/lib.rs
Expand Up @@ -53,6 +53,9 @@ use rustc::lint::builtin::{
ABSOLUTE_PATHS_NOT_STARTING_WITH_CRATE,
ELIDED_LIFETIMES_IN_PATHS,
EXPLICIT_OUTLIVES_REQUIREMENTS,
INTRA_DOC_LINK_RESOLUTION_FAILURE,
MISSING_DOC_CODE_EXAMPLES,
PRIVATE_DOC_TESTS,
parser::QUESTION_MARK_MACRO_SEP
};
use rustc::session;
Expand Down Expand Up @@ -204,6 +207,12 @@ pub fn register_builtins(store: &mut lint::LintStore, sess: Option<&Session>) {
// MACRO_USE_EXTERN_CRATE,
);

add_lint_group!(sess,
"rustdoc",
INTRA_DOC_LINK_RESOLUTION_FAILURE,
MISSING_DOC_CODE_EXAMPLES,
PRIVATE_DOC_TESTS);

// Guidelines for creating a future incompatibility lint:
//
// - Create a lint defaulting to warn as normal, with ideally the same error
Expand Down
34 changes: 34 additions & 0 deletions src/test/rustdoc-ui/lint-group.rs
@@ -0,0 +1,34 @@
// Copyright 2018 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.

//! Documenting the kinds of lints emitted by rustdoc.
//!
//! ```
//! println!("sup");
//! ```

#![deny(rustdoc)]

/// what up, let's make an [error]
///
/// ```
/// println!("sup");
/// ```
pub fn link_error() {} //~^^^^^ ERROR cannot be resolved, ignoring it

/// wait, this doesn't have a doctest?
pub fn no_doctest() {} //~^ ERROR Missing code example in this documentation

/// wait, this *does* have a doctest?
///
/// ```
/// println!("sup");
/// ```
fn private_doctest() {} //~^^^^^ ERROR Documentation test in private item
44 changes: 44 additions & 0 deletions src/test/rustdoc-ui/lint-group.stderr
@@ -0,0 +1,44 @@
error: Documentation test in private item
--> $DIR/lint-group.rs:29:1
|
LL | / /// wait, this *does* have a doctest?
LL | | ///
LL | | /// ```
LL | | /// println!("sup");
LL | | /// ```
| |_______^
|
note: lint level defined here
--> $DIR/lint-group.rs:17:9
|
LL | #![deny(rustdoc)]
| ^^^^^^^
= note: #[deny(private_doc_tests)] implied by #[deny(rustdoc)]

error: `[error]` cannot be resolved, ignoring it...
--> $DIR/lint-group.rs:19:29
|
LL | /// what up, let's make an [error]
| ^^^^^ cannot be resolved, ignoring
|
note: lint level defined here
--> $DIR/lint-group.rs:17:9
|
LL | #![deny(rustdoc)]
| ^^^^^^^
= note: #[deny(intra_doc_link_resolution_failure)] implied by #[deny(rustdoc)]
= help: to escape `[` and `]` characters, just add '/' before them like `/[` or `/]`

error: Missing code example in this documentation
--> $DIR/lint-group.rs:26:1
|
LL | /// wait, this doesn't have a doctest?
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
note: lint level defined here
--> $DIR/lint-group.rs:17:9
|
LL | #![deny(rustdoc)]
| ^^^^^^^
= note: #[deny(missing_doc_code_examples)] implied by #[deny(rustdoc)]

0 comments on commit 48c17a0

Please sign in to comment.