Rollup merge of #78114 - jyn514:private, r=oli-obk

Recognize `private_intra_doc_links` as a lint

Previously, trying to allow this would give another error!

```
warning: unknown lint: `private_intra_doc_links`
 --> private.rs:1:10
  |
1 | #![allow(private_intra_doc_links)]
  |          ^^^^^^^^^^^^^^^^^^^^^^^ help: did you mean: `broken_intra_doc_links`
  |
  = note: `#[warn(unknown_lints)]` on by default

warning: public documentation for `DocMe` links to private item `DontDocMe`
 --> private.rs:2:11
  |
2 | /// docs [DontDocMe]
  |           ^^^^^^^^^ this item is private
  |
  = note: `#[warn(private_intra_doc_links)]` on by default
  = note: this link will resolve properly if you pass `--document-private-items`
```

Fixes the issue found in https://github.com/rust-lang/rust/pull/77249#issuecomment-712339227.

r? ````````@Manishearth````````

Does anyone know why this additional step is necessary? It seems weird this has to be declared in 3 different places.
This commit is contained in:
Dylan DPC 2020-11-09 01:13:31 +01:00 committed by GitHub
commit b9671ae5f8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 5 deletions

View File

@ -2801,6 +2801,7 @@ declare_lint_pass! {
UNSTABLE_NAME_COLLISIONS, UNSTABLE_NAME_COLLISIONS,
IRREFUTABLE_LET_PATTERNS, IRREFUTABLE_LET_PATTERNS,
BROKEN_INTRA_DOC_LINKS, BROKEN_INTRA_DOC_LINKS,
PRIVATE_INTRA_DOC_LINKS,
INVALID_CODEBLOCK_ATTRIBUTES, INVALID_CODEBLOCK_ATTRIBUTES,
MISSING_CRATE_LEVEL_DOCS, MISSING_CRATE_LEVEL_DOCS,
MISSING_DOC_CODE_EXAMPLES, MISSING_DOC_CODE_EXAMPLES,

View File

@ -322,7 +322,8 @@ pub fn run_core(
let cpath = Some(input.clone()); let cpath = Some(input.clone());
let input = Input::File(input); let input = Input::File(input);
let intra_link_resolution_failure_name = lint::builtin::BROKEN_INTRA_DOC_LINKS.name; let broken_intra_doc_links = lint::builtin::BROKEN_INTRA_DOC_LINKS.name;
let private_intra_doc_links = lint::builtin::PRIVATE_INTRA_DOC_LINKS.name;
let missing_docs = rustc_lint::builtin::MISSING_DOCS.name; let missing_docs = rustc_lint::builtin::MISSING_DOCS.name;
let missing_doc_example = rustc_lint::builtin::MISSING_DOC_CODE_EXAMPLES.name; let missing_doc_example = rustc_lint::builtin::MISSING_DOC_CODE_EXAMPLES.name;
let private_doc_tests = rustc_lint::builtin::PRIVATE_DOC_TESTS.name; let private_doc_tests = rustc_lint::builtin::PRIVATE_DOC_TESTS.name;
@ -336,7 +337,8 @@ pub fn run_core(
// In addition to those specific lints, we also need to allow those given through // In addition to those specific lints, we also need to allow those given through
// command line, otherwise they'll get ignored and we don't want that. // command line, otherwise they'll get ignored and we don't want that.
let lints_to_show = vec![ let lints_to_show = vec![
intra_link_resolution_failure_name.to_owned(), broken_intra_doc_links.to_owned(),
private_intra_doc_links.to_owned(),
missing_docs.to_owned(), missing_docs.to_owned(),
missing_doc_example.to_owned(), missing_doc_example.to_owned(),
private_doc_tests.to_owned(), private_doc_tests.to_owned(),
@ -349,9 +351,8 @@ pub fn run_core(
]; ];
let (lint_opts, lint_caps) = init_lints(lints_to_show, lint_opts, |lint| { let (lint_opts, lint_caps) = init_lints(lints_to_show, lint_opts, |lint| {
if lint.name == intra_link_resolution_failure_name // FIXME: why is this necessary?
|| lint.name == invalid_codeblock_attributes_name if lint.name == broken_intra_doc_links || lint.name == invalid_codeblock_attributes_name {
{
None None
} else { } else {
Some((lint.name_lower(), lint::Allow)) Some((lint.name_lower(), lint::Allow))