Skip to content

Commit

Permalink
Rename to intra_doc_resolution_failures
Browse files Browse the repository at this point in the history
  • Loading branch information
Manishearth committed Jul 30, 2020
1 parent da0b10c commit 4df76f0
Show file tree
Hide file tree
Showing 51 changed files with 83 additions and 89 deletions.
2 changes: 1 addition & 1 deletion src/doc/rustdoc/src/lints.md
Expand Up @@ -11,7 +11,7 @@ can use them like any other lints by doing this:

Here is the list of the lints provided by `rustdoc`:

## intra_doc_link_resolution_failures
## intra_doc_resolution_failures

This lint **warns by default** and is **nightly-only**. This lint detects when
an intra-doc link fails to get resolved. For example:
Expand Down
6 changes: 3 additions & 3 deletions src/librustc_lint/lib.rs
Expand Up @@ -62,7 +62,7 @@ use rustc_middle::ty::query::Providers;
use rustc_middle::ty::TyCtxt;
use rustc_session::lint::builtin::{
BARE_TRAIT_OBJECTS, ELIDED_LIFETIMES_IN_PATHS, EXPLICIT_OUTLIVES_REQUIREMENTS,
INTRA_DOC_LINK_RESOLUTION_FAILURES, INVALID_CODEBLOCK_ATTRIBUTES, MISSING_DOC_CODE_EXAMPLES,
INTRA_DOC_RESOLUTION_FAILURES, INVALID_CODEBLOCK_ATTRIBUTES, MISSING_DOC_CODE_EXAMPLES,
PRIVATE_DOC_TESTS,
};
use rustc_span::symbol::{Ident, Symbol};
Expand Down Expand Up @@ -303,7 +303,7 @@ fn register_builtins(store: &mut LintStore, no_interleave_lints: bool) {

add_lint_group!(
"rustdoc",
INTRA_DOC_LINK_RESOLUTION_FAILURES,
INTRA_DOC_RESOLUTION_FAILURES,
INVALID_CODEBLOCK_ATTRIBUTES,
MISSING_DOC_CODE_EXAMPLES,
PRIVATE_DOC_TESTS
Expand All @@ -318,7 +318,7 @@ fn register_builtins(store: &mut LintStore, no_interleave_lints: bool) {
store.register_renamed("async_idents", "keyword_idents");
store.register_renamed("exceeding_bitshifts", "arithmetic_overflow");
store.register_renamed("redundant_semicolon", "redundant_semicolons");
store.register_renamed("intra_doc_link_resolution_failure", "intra_doc_link_resolution_failures");
store.register_renamed("intra_doc_link_resolution_failure", "intra_doc_resolution_failures");
store.register_removed("unknown_features", "replaced by an error");
store.register_removed("unsigned_negation", "replaced by negate_unsigned feature gate");
store.register_removed("negate_unsigned", "cast a signed value instead");
Expand Down
4 changes: 2 additions & 2 deletions src/librustc_session/lint/builtin.rs
Expand Up @@ -398,7 +398,7 @@ declare_lint! {
}

declare_lint! {
pub INTRA_DOC_LINK_RESOLUTION_FAILURES,
pub INTRA_DOC_RESOLUTION_FAILURES,
Warn,
"failures in resolving intra-doc link targets"
}
Expand Down Expand Up @@ -601,7 +601,7 @@ declare_lint_pass! {
ABSOLUTE_PATHS_NOT_STARTING_WITH_CRATE,
UNSTABLE_NAME_COLLISIONS,
IRREFUTABLE_LET_PATTERNS,
INTRA_DOC_LINK_RESOLUTION_FAILURES,
INTRA_DOC_RESOLUTION_FAILURES,
INVALID_CODEBLOCK_ATTRIBUTES,
MISSING_CRATE_LEVEL_DOCS,
MISSING_DOC_CODE_EXAMPLES,
Expand Down
2 changes: 1 addition & 1 deletion src/librustdoc/core.rs
Expand Up @@ -315,7 +315,7 @@ pub fn run_core(options: RustdocOptions) -> (clean::Crate, RenderInfo, RenderOpt
let cpath = Some(input.clone());
let input = Input::File(input);

let intra_link_resolution_failure_name = lint::builtin::INTRA_DOC_LINK_RESOLUTION_FAILURES.name;
let intra_link_resolution_failure_name = lint::builtin::INTRA_DOC_RESOLUTION_FAILURES.name;
let missing_docs = rustc_lint::builtin::MISSING_DOCS.name;
let missing_doc_example = rustc_lint::builtin::MISSING_DOC_CODE_EXAMPLES.name;
let private_doc_tests = rustc_lint::builtin::PRIVATE_DOC_TESTS.name;
Expand Down
66 changes: 30 additions & 36 deletions src/librustdoc/passes/collect_intra_doc_links.rs
Expand Up @@ -867,46 +867,40 @@ fn report_diagnostic(
let attrs = &item.attrs;
let sp = span_of_attrs(attrs).unwrap_or(item.source.span());

cx.tcx.struct_span_lint_hir(
lint::builtin::INTRA_DOC_LINK_RESOLUTION_FAILURES,
hir_id,
sp,
|lint| {
let mut diag = lint.build(msg);

let span = link_range
.as_ref()
.and_then(|range| super::source_span_for_markdown_range(cx, dox, range, attrs));

if let Some(link_range) = link_range {
if let Some(sp) = span {
diag.set_span(sp);
} else {
// blah blah blah\nblah\nblah [blah] blah blah\nblah blah
// ^ ~~~~
// | link_range
// last_new_line_offset
let last_new_line_offset =
dox[..link_range.start].rfind('\n').map_or(0, |n| n + 1);
let line = dox[last_new_line_offset..].lines().next().unwrap_or("");

// Print the line containing the `link_range` and manually mark it with '^'s.
diag.note(&format!(
"the link appears in this line:\n\n{line}\n\
cx.tcx.struct_span_lint_hir(lint::builtin::INTRA_DOC_RESOLUTION_FAILURES, hir_id, sp, |lint| {
let mut diag = lint.build(msg);

let span = link_range
.as_ref()
.and_then(|range| super::source_span_for_markdown_range(cx, dox, range, attrs));

if let Some(link_range) = link_range {
if let Some(sp) = span {
diag.set_span(sp);
} else {
// blah blah blah\nblah\nblah [blah] blah blah\nblah blah
// ^ ~~~~
// | link_range
// last_new_line_offset
let last_new_line_offset = dox[..link_range.start].rfind('\n').map_or(0, |n| n + 1);
let line = dox[last_new_line_offset..].lines().next().unwrap_or("");

// Print the line containing the `link_range` and manually mark it with '^'s.
diag.note(&format!(
"the link appears in this line:\n\n{line}\n\
{indicator: <before$}{indicator:^<found$}",
line = line,
indicator = "",
before = link_range.start - last_new_line_offset,
found = link_range.len(),
));
}
line = line,
indicator = "",
before = link_range.start - last_new_line_offset,
found = link_range.len(),
));
}
}

decorate(&mut diag, span);
decorate(&mut diag, span);

diag.emit();
},
);
diag.emit();
});
}

fn resolution_failure(
Expand Down
2 changes: 1 addition & 1 deletion src/test/run-make-fulldeps/exit-code/lint-failure.rs
@@ -1,4 +1,4 @@
#![deny(intra_doc_link_resolution_failures)]
#![deny(intra_doc_resolution_failures)]

/// [intradoc::failure]
pub fn main() {
Expand Down
2 changes: 1 addition & 1 deletion src/test/rustdoc-ui/deny-intra-link-resolution-failure.rs
@@ -1,4 +1,4 @@
#![deny(intra_doc_link_resolution_failures)]
#![deny(intra_doc_resolution_failures)]

/// [v2] //~ ERROR
pub fn foo() {}
Expand Up @@ -7,7 +7,7 @@ LL | /// [v2]
note: the lint level is defined here
--> $DIR/deny-intra-link-resolution-failure.rs:1:9
|
LL | #![deny(intra_doc_link_resolution_failures)]
LL | #![deny(intra_doc_resolution_failures)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`

Expand Down
2 changes: 1 addition & 1 deletion src/test/rustdoc-ui/intra-doc-alias-ice.rs
@@ -1,4 +1,4 @@
#![deny(intra_doc_link_resolution_failures)]
#![deny(intra_doc_resolution_failures)]

pub type TypeAlias = usize;

Expand Down
2 changes: 1 addition & 1 deletion src/test/rustdoc-ui/intra-doc-alias-ice.stderr
Expand Up @@ -7,7 +7,7 @@ LL | /// [broken cross-reference](TypeAlias::hoge)
note: the lint level is defined here
--> $DIR/intra-doc-alias-ice.rs:1:9
|
LL | #![deny(intra_doc_link_resolution_failures)]
LL | #![deny(intra_doc_resolution_failures)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`

Expand Down
2 changes: 1 addition & 1 deletion src/test/rustdoc-ui/intra-link-span-ice-55723.rs
@@ -1,4 +1,4 @@
#![deny(intra_doc_link_resolution_failures)]
#![deny(intra_doc_resolution_failures)]

// An error in calculating spans while reporting intra-doc link resolution errors caused rustdoc to
// attempt to slice in the middle of a multibyte character. See
Expand Down
2 changes: 1 addition & 1 deletion src/test/rustdoc-ui/intra-link-span-ice-55723.stderr
Expand Up @@ -7,7 +7,7 @@ LL | /// (arr[i])
note: the lint level is defined here
--> $DIR/intra-link-span-ice-55723.rs:1:9
|
LL | #![deny(intra_doc_link_resolution_failures)]
LL | #![deny(intra_doc_resolution_failures)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`

Expand Down
2 changes: 1 addition & 1 deletion src/test/rustdoc-ui/intra-links-ambiguity.rs
@@ -1,4 +1,4 @@
#![deny(intra_doc_link_resolution_failures)]
#![deny(intra_doc_resolution_failures)]
#![allow(non_camel_case_types)]
#![allow(non_upper_case_globals)]

Expand Down
2 changes: 1 addition & 1 deletion src/test/rustdoc-ui/intra-links-ambiguity.stderr
Expand Up @@ -7,7 +7,7 @@ LL | /// [`ambiguous`] is ambiguous.
note: the lint level is defined here
--> $DIR/intra-links-ambiguity.rs:1:9
|
LL | #![deny(intra_doc_link_resolution_failures)]
LL | #![deny(intra_doc_resolution_failures)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
help: to link to the struct, prefix with the item type
|
Expand Down
2 changes: 1 addition & 1 deletion src/test/rustdoc-ui/intra-links-anchors.rs
@@ -1,4 +1,4 @@
#![deny(intra_doc_link_resolution_failures)]
#![deny(intra_doc_resolution_failures)]

// A few tests on anchors.

Expand Down
2 changes: 1 addition & 1 deletion src/test/rustdoc-ui/intra-links-anchors.stderr
Expand Up @@ -7,7 +7,7 @@ LL | /// Or maybe [Foo::f#hola].
note: the lint level is defined here
--> $DIR/intra-links-anchors.rs:1:9
|
LL | #![deny(intra_doc_link_resolution_failures)]
LL | #![deny(intra_doc_resolution_failures)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: `hello#people#!` contains multiple anchors
Expand Down
2 changes: 1 addition & 1 deletion src/test/rustdoc-ui/intra-links-private.private.stderr
Expand Up @@ -4,7 +4,7 @@ warning: public documentation for `DocMe` links to private item `DontDocMe`
LL | /// docs [DontDocMe]
| ^^^^^^^^^ this item is private
|
= note: `#[warn(intra_doc_link_resolution_failures)]` on by default
= note: `#[warn(intra_doc_resolution_failures)]` on by default
= note: this link resolves only because you passed `--document-private-items`, but will break without

warning: 1 warning emitted
Expand Down
2 changes: 1 addition & 1 deletion src/test/rustdoc-ui/intra-links-private.public.stderr
Expand Up @@ -4,7 +4,7 @@ warning: public documentation for `DocMe` links to private item `DontDocMe`
LL | /// docs [DontDocMe]
| ^^^^^^^^^ this item is private
|
= note: `#[warn(intra_doc_link_resolution_failures)]` on by default
= note: `#[warn(intra_doc_resolution_failures)]` on by default
= note: this link will resolve properly if you pass `--document-private-items`

warning: 1 warning emitted
Expand Down
2 changes: 1 addition & 1 deletion src/test/rustdoc-ui/intra-links-warning-crlf.stderr
Expand Up @@ -4,7 +4,7 @@ warning: unresolved link to `error`
LL | /// [error]
| ^^^^^ unresolved link
|
= note: `#[warn(intra_doc_link_resolution_failures)]` on by default
= note: `#[warn(intra_doc_resolution_failures)]` on by default
= help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`

warning: unresolved link to `error1`
Expand Down
2 changes: 1 addition & 1 deletion src/test/rustdoc-ui/intra-links-warning.stderr
Expand Up @@ -4,7 +4,7 @@ warning: unresolved link to `Foo::baz`
LL | //! Test with [Foo::baz], [Bar::foo], ...
| ^^^^^^^^ unresolved link
|
= note: `#[warn(intra_doc_link_resolution_failures)]` on by default
= note: `#[warn(intra_doc_resolution_failures)]` on by default
= help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`

warning: unresolved link to `Bar::foo`
Expand Down
2 changes: 1 addition & 1 deletion src/test/rustdoc-ui/issue-74134.private.stderr
Expand Up @@ -4,7 +4,7 @@ warning: public documentation for `public_item` links to private item `PrivateTy
LL | /// [`PrivateType`]
| ^^^^^^^^^^^^^ this item is private
|
= note: `#[warn(intra_doc_link_resolution_failures)]` on by default
= note: `#[warn(intra_doc_resolution_failures)]` on by default
= note: this link resolves only because you passed `--document-private-items`, but will break without

warning: 1 warning emitted
Expand Down
2 changes: 1 addition & 1 deletion src/test/rustdoc-ui/issue-74134.public.stderr
Expand Up @@ -4,7 +4,7 @@ warning: public documentation for `public_item` links to private item `PrivateTy
LL | /// [`PrivateType`]
| ^^^^^^^^^^^^^ this item is private
|
= note: `#[warn(intra_doc_link_resolution_failures)]` on by default
= note: `#[warn(intra_doc_resolution_failures)]` on by default
= note: this link will resolve properly if you pass `--document-private-items`

warning: 1 warning emitted
Expand Down
2 changes: 1 addition & 1 deletion src/test/rustdoc-ui/lint-group.stderr
Expand Up @@ -39,7 +39,7 @@ note: the lint level is defined here
|
LL | #![deny(rustdoc)]
| ^^^^^^^
= note: `#[deny(intra_doc_link_resolution_failures)]` implied by `#[deny(rustdoc)]`
= note: `#[deny(intra_doc_resolution_failures)]` implied by `#[deny(rustdoc)]`
= help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`

error: aborting due to 3 previous errors
Expand Down
2 changes: 1 addition & 1 deletion src/test/rustdoc-ui/reference-link-has-one-warning.stderr
Expand Up @@ -4,7 +4,7 @@ warning: `[with#anchor#error]` has an issue with the link anchor.
LL | /// docs [label][with#anchor#error]
| ^^^^^^^^^^^^^^^^^ only one `#` is allowed in a link
|
= note: `#[warn(intra_doc_link_resolution_failures)]` on by default
= note: `#[warn(intra_doc_resolution_failures)]` on by default

warning: 1 warning emitted

2 changes: 1 addition & 1 deletion src/test/rustdoc/intra-doc-crate/additional_doc.rs
@@ -1,6 +1,6 @@
// aux-build:additional_doc.rs
// build-aux-docs
#![deny(intra_doc_link_resolution_failures)]
#![deny(intra_doc_resolution_failures)]

extern crate my_rand;

Expand Down
@@ -1,5 +1,5 @@
#![crate_name = "my_rand"]
#![deny(intra_doc_link_resolution_failures)]
#![deny(intra_doc_resolution_failures)]

pub trait RngCore {}
/// Rng extends [`RngCore`].
Expand Down
2 changes: 1 addition & 1 deletion src/test/rustdoc/intra-doc-crate/auxiliary/hidden.rs
@@ -1,5 +1,5 @@
#![crate_name = "hidden_dep"]
#![deny(intra_doc_link_resolution_failures)]
#![deny(intra_doc_resolution_failures)]

#[doc(hidden)]
pub mod __reexport {
Expand Down
@@ -1,5 +1,5 @@
#![crate_name = "a"]
#![deny(intra_doc_link_resolution_failures)]
#![deny(intra_doc_resolution_failures)]

pub struct Foo;

Expand Down
2 changes: 1 addition & 1 deletion src/test/rustdoc/intra-doc-crate/auxiliary/macro_inner.rs
@@ -1,5 +1,5 @@
#![crate_name = "macro_inner"]
#![deny(intra_doc_link_resolution_failures)]
#![deny(intra_doc_resolution_failures)]

pub struct Foo;

Expand Down
2 changes: 1 addition & 1 deletion src/test/rustdoc/intra-doc-crate/auxiliary/module.rs
@@ -1,5 +1,5 @@
#![crate_name = "module_inner"]
#![deny(intra_doc_link_resolution_failures)]
#![deny(intra_doc_resolution_failures)]
/// [SomeType] links to [bar]
pub struct SomeType;
pub trait SomeTrait {}
Expand Down
@@ -1,5 +1,5 @@
#![crate_name = "a"]
#![deny(intra_doc_link_resolution_failures)]
#![deny(intra_doc_resolution_failures)]

pub mod bar {
pub struct Bar;
Expand Down
@@ -1,5 +1,5 @@
#![crate_name = "bar"]
#![deny(intra_doc_link_resolution_failures)]
#![deny(intra_doc_resolution_failures)]

pub trait Foo {
/// [`Bar`] [`Baz`]
Expand Down
2 changes: 1 addition & 1 deletion src/test/rustdoc/intra-doc-crate/basic.rs
@@ -1,6 +1,6 @@
// aux-build:intra-doc-basic.rs
// build-aux-docs
#![deny(intra_doc_link_resolution_failures)]
#![deny(intra_doc_resolution_failures)]

// from https://github.com/rust-lang/rust/issues/65983
extern crate a;
Expand Down
2 changes: 1 addition & 1 deletion src/test/rustdoc/intra-doc-crate/hidden.rs
@@ -1,6 +1,6 @@
// aux-build:hidden.rs
// build-aux-docs
#![deny(intra_doc_link_resolution_failures)]
#![deny(intra_doc_resolution_failures)]

// tests https://github.com/rust-lang/rust/issues/73363

Expand Down
2 changes: 1 addition & 1 deletion src/test/rustdoc/intra-doc-crate/macro.rs
Expand Up @@ -2,7 +2,7 @@
// aux-build:macro_inner.rs
// aux-build:proc_macro.rs
// build-aux-docs
#![deny(intra_doc_link_resolution_failures)]
#![deny(intra_doc_resolution_failures)]
extern crate macro_inner;
extern crate proc_macro_inner;

Expand Down
2 changes: 1 addition & 1 deletion src/test/rustdoc/intra-doc-crate/module.rs
@@ -1,7 +1,7 @@
// outer.rs
// aux-build: module.rs
// build-aux-docs
#![deny(intra_doc_link_resolution_failures)]
#![deny(intra_doc_resolution_failures)]
extern crate module_inner;
// @has 'module/bar/index.html' '//a[@href="../../module_inner/trait.SomeTrait.html"]' 'SomeTrait'
// @has 'module/bar/index.html' '//a[@href="../../module_inner/struct.SomeType.html"]' 'SomeType'
Expand Down
2 changes: 1 addition & 1 deletion src/test/rustdoc/intra-doc-crate/submodule-inner.rs
@@ -1,6 +1,6 @@
// aux-build:submodule-inner.rs
// build-aux-docs
#![deny(intra_doc_link_resolution_failures)]
#![deny(intra_doc_resolution_failures)]

extern crate a;

Expand Down
2 changes: 1 addition & 1 deletion src/test/rustdoc/intra-doc-crate/submodule-outer.rs
@@ -1,6 +1,6 @@
// aux-build:submodule-outer.rs
// edition:2018
#![deny(intra_doc_link_resolution_failures)]
#![deny(intra_doc_resolution_failures)]

extern crate bar as bar_;

Expand Down

0 comments on commit 4df76f0

Please sign in to comment.