about summary refs log tree commit diff
diff options
context:
space:
mode:
authorQuietMisdreavus <grey@quietmisdreavus.net>2018-12-10 14:58:57 -0600
committerQuietMisdreavus <grey@quietmisdreavus.net>2018-12-10 14:58:57 -0600
commit48c17a09388d5fc1e9efd268a2a717da413af5a7 (patch)
tree5f791276dae77093f9594ef8ff36db516caa0438
parent1137d29d5e551e377579c5a601fe7c444057d00c (diff)
downloadrust-48c17a09388d5fc1e9efd268a2a717da413af5a7.tar.gz
rust-48c17a09388d5fc1e9efd268a2a717da413af5a7.zip
add a lint group for lints emitted by rustdoc
-rw-r--r--src/librustc_lint/lib.rs9
-rw-r--r--src/test/rustdoc-ui/lint-group.rs34
-rw-r--r--src/test/rustdoc-ui/lint-group.stderr44
3 files changed, 87 insertions, 0 deletions
diff --git a/src/librustc_lint/lib.rs b/src/librustc_lint/lib.rs
index b1e44ea761c..4d4eb887c27 100644
--- a/src/librustc_lint/lib.rs
+++ b/src/librustc_lint/lib.rs
@@ -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;
@@ -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
diff --git a/src/test/rustdoc-ui/lint-group.rs b/src/test/rustdoc-ui/lint-group.rs
new file mode 100644
index 00000000000..f82bfb52246
--- /dev/null
+++ b/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
diff --git a/src/test/rustdoc-ui/lint-group.stderr b/src/test/rustdoc-ui/lint-group.stderr
new file mode 100644
index 00000000000..2fd760d54c2
--- /dev/null
+++ b/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)]
+