about summary refs log tree commit diff
diff options
context:
space:
mode:
authorDennis Hamester <dennis.hamester@gmail.com>2020-07-22 19:53:43 +0200
committerDennis Hamester <dennis.hamester@gmail.com>2020-07-22 21:40:51 +0200
commitc14641a814696f6dffe5a0e7d693af31a4e40d09 (patch)
tree86aecba96300b9b009e0efbad1cf6bfc04bcb436
parented53de029cf84651423007ec68305d6e772c819f (diff)
downloadrust-c14641a814696f6dffe5a0e7d693af31a4e40d09.tar.gz
rust-c14641a814696f6dffe5a0e7d693af31a4e40d09.zip
rustdoc: Add explanation when linting against public to private item links
The additional note helps explaining why the lint was triggered and that
--document-private-items directly influences the link resolution.
-rw-r--r--src/librustdoc/passes/collect_intra_doc_links.rs7
-rw-r--r--src/test/rustdoc-ui/intra-links-private.private.stderr1
-rw-r--r--src/test/rustdoc-ui/intra-links-private.public.stderr1
-rw-r--r--src/test/rustdoc-ui/issue-74134.private.stderr1
-rw-r--r--src/test/rustdoc-ui/issue-74134.public.stderr1
5 files changed, 11 insertions, 0 deletions
diff --git a/src/librustdoc/passes/collect_intra_doc_links.rs b/src/librustdoc/passes/collect_intra_doc_links.rs
index 8e113cfa563..5187839423d 100644
--- a/src/librustdoc/passes/collect_intra_doc_links.rs
+++ b/src/librustdoc/passes/collect_intra_doc_links.rs
@@ -1076,6 +1076,13 @@ fn privacy_error(
         if let Some(sp) = sp {
             diag.span_label(sp, "this item is private");
         }
+
+        let note_msg = if cx.render_options.document_private {
+            "this link resolves only because you passed `--document-private-items`, but will break without"
+        } else {
+            "this link will resolve properly if you pass `--document-private-items`"
+        };
+        diag.note(note_msg);
     });
 }
 
diff --git a/src/test/rustdoc-ui/intra-links-private.private.stderr b/src/test/rustdoc-ui/intra-links-private.private.stderr
index 6a23afb0798..a2148b82f81 100644
--- a/src/test/rustdoc-ui/intra-links-private.private.stderr
+++ b/src/test/rustdoc-ui/intra-links-private.private.stderr
@@ -5,6 +5,7 @@ LL | /// docs [DontDocMe]
    |           ^^^^^^^^^ this item is private
    |
    = note: `#[warn(intra_doc_link_resolution_failure)]` on by default
+   = note: this link resolves only because you passed `--document-private-items`, but will break without
 
 warning: 1 warning emitted
 
diff --git a/src/test/rustdoc-ui/intra-links-private.public.stderr b/src/test/rustdoc-ui/intra-links-private.public.stderr
index 6a23afb0798..56742406992 100644
--- a/src/test/rustdoc-ui/intra-links-private.public.stderr
+++ b/src/test/rustdoc-ui/intra-links-private.public.stderr
@@ -5,6 +5,7 @@ LL | /// docs [DontDocMe]
    |           ^^^^^^^^^ this item is private
    |
    = note: `#[warn(intra_doc_link_resolution_failure)]` on by default
+   = note: this link will resolve properly if you pass `--document-private-items`
 
 warning: 1 warning emitted
 
diff --git a/src/test/rustdoc-ui/issue-74134.private.stderr b/src/test/rustdoc-ui/issue-74134.private.stderr
index 3c41f7e63e6..9c5cdf0117c 100644
--- a/src/test/rustdoc-ui/issue-74134.private.stderr
+++ b/src/test/rustdoc-ui/issue-74134.private.stderr
@@ -5,6 +5,7 @@ LL |     /// [`PrivateType`]
    |          ^^^^^^^^^^^^^ this item is private
    |
    = note: `#[warn(intra_doc_link_resolution_failure)]` on by default
+   = note: this link resolves only because you passed `--document-private-items`, but will break without
 
 warning: 1 warning emitted
 
diff --git a/src/test/rustdoc-ui/issue-74134.public.stderr b/src/test/rustdoc-ui/issue-74134.public.stderr
index 3c41f7e63e6..ff2951d864e 100644
--- a/src/test/rustdoc-ui/issue-74134.public.stderr
+++ b/src/test/rustdoc-ui/issue-74134.public.stderr
@@ -5,6 +5,7 @@ LL |     /// [`PrivateType`]
    |          ^^^^^^^^^^^^^ this item is private
    |
    = note: `#[warn(intra_doc_link_resolution_failure)]` on by default
+   = note: this link will resolve properly if you pass `--document-private-items`
 
 warning: 1 warning emitted