Skip to content

Commit

Permalink
Unresolved link -> incompatible link kind
Browse files Browse the repository at this point in the history
Clearly it has been resolved, because we say on the next line what it
resolved to.
  • Loading branch information
jyn514 committed Aug 5, 2020
1 parent 444f5a0 commit fc273a0
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 22 deletions.
3 changes: 1 addition & 2 deletions src/librustdoc/passes/collect_intra_doc_links.rs
Expand Up @@ -777,7 +777,7 @@ impl<'a, 'tcx> DocFolder for LinkCollector<'a, 'tcx> {
(_, Some(Disambiguator::Kind(expected))) if kind == expected => {}
(_, Some(expected)) => {
// The resolved item did not match the disambiguator; give a better error than 'not found'
let msg = format!("unresolved link to `{}`", path_str);
let msg = format!("incompatible link kind for `{}`", path_str);
report_diagnostic(cx, &msg, &item, &dox, link_range, |diag, sp| {
// HACK(jynelson): by looking at the source I saw the DefId we pass
// for `expected.descr()` doesn't matter, since it's not a crate
Expand All @@ -787,7 +787,6 @@ impl<'a, 'tcx> DocFolder for LinkCollector<'a, 'tcx> {
diag.note(&note);
if let Some(sp) = sp {
diag.span_suggestion(sp, &help_msg, suggestion, Applicability::MaybeIncorrect);
diag.set_sort_span(sp);
}
});
continue;
Expand Down
20 changes: 10 additions & 10 deletions src/test/rustdoc-ui/intra-links-disambiguator-mismatch.rs
Expand Up @@ -12,52 +12,52 @@ const c: usize = 0;
trait T {}

/// Link to [struct@S]
//~^ ERROR unresolved link to `S`
//~^ ERROR incompatible link kind for `S`
//~| NOTE this link resolved
//~| HELP use its disambiguator

/// Link to [mod@S]
//~^ ERROR unresolved link to `S`
//~^ ERROR incompatible link kind for `S`
//~| NOTE this link resolved
//~| HELP use its disambiguator

/// Link to [union@S]
//~^ ERROR unresolved link to `S`
//~^ ERROR incompatible link kind for `S`
//~| NOTE this link resolved
//~| HELP use its disambiguator

/// Link to [trait@S]
//~^ ERROR unresolved link to `S`
//~^ ERROR incompatible link kind for `S`
//~| NOTE this link resolved
//~| HELP use its disambiguator

/// Link to [struct@T]
//~^ ERROR unresolved link to `T`
//~^ ERROR incompatible link kind for `T`
//~| NOTE this link resolved
//~| HELP use its disambiguator

/// Link to [derive@m]
//~^ ERROR unresolved link to `m`
//~^ ERROR incompatible link kind for `m`
//~| NOTE this link resolved
//~| HELP use its disambiguator

/// Link to [const@s]
//~^ ERROR unresolved link to `s`
//~^ ERROR incompatible link kind for `s`
//~| NOTE this link resolved
//~| HELP use its disambiguator

/// Link to [static@c]
//~^ ERROR unresolved link to `c`
//~^ ERROR incompatible link kind for `c`
//~| NOTE this link resolved
//~| HELP use its disambiguator

/// Link to [fn@c]
//~^ ERROR unresolved link to `c`
//~^ ERROR incompatible link kind for `c`
//~| NOTE this link resolved
//~| HELP use its disambiguator

/// Link to [c()]
//~^ ERROR unresolved link to `c`
//~^ ERROR incompatible link kind for `c`
//~| NOTE this link resolved
//~| HELP use its disambiguator
pub fn f() {}
20 changes: 10 additions & 10 deletions src/test/rustdoc-ui/intra-links-disambiguator-mismatch.stderr
@@ -1,4 +1,4 @@
error: unresolved link to `S`
error: incompatible link kind for `S`
--> $DIR/intra-links-disambiguator-mismatch.rs:14:14
|
LL | /// Link to [struct@S]
Expand All @@ -11,71 +11,71 @@ LL | #![deny(broken_intra_doc_links)]
| ^^^^^^^^^^^^^^^^^^^^^^
= note: this link resolved to an enum, which is not a struct

error: unresolved link to `S`
error: incompatible link kind for `S`
--> $DIR/intra-links-disambiguator-mismatch.rs:19:14
|
LL | /// Link to [mod@S]
| ^^^^^ help: to link to the enum, use its disambiguator: `enum@S`
|
= note: this link resolved to an enum, which is not a module

error: unresolved link to `S`
error: incompatible link kind for `S`
--> $DIR/intra-links-disambiguator-mismatch.rs:24:14
|
LL | /// Link to [union@S]
| ^^^^^^^ help: to link to the enum, use its disambiguator: `enum@S`
|
= note: this link resolved to an enum, which is not a union

error: unresolved link to `S`
error: incompatible link kind for `S`
--> $DIR/intra-links-disambiguator-mismatch.rs:29:14
|
LL | /// Link to [trait@S]
| ^^^^^^^ help: to link to the enum, use its disambiguator: `enum@S`
|
= note: this link resolved to an enum, which is not a trait

error: unresolved link to `T`
error: incompatible link kind for `T`
--> $DIR/intra-links-disambiguator-mismatch.rs:34:14
|
LL | /// Link to [struct@T]
| ^^^^^^^^ help: to link to the trait, use its disambiguator: `trait@T`
|
= note: this link resolved to a trait, which is not a struct

error: unresolved link to `m`
error: incompatible link kind for `m`
--> $DIR/intra-links-disambiguator-mismatch.rs:39:14
|
LL | /// Link to [derive@m]
| ^^^^^^^^ help: to link to the macro, use its disambiguator: `m!`
|
= note: this link resolved to a macro, which is not a derive macro

error: unresolved link to `s`
error: incompatible link kind for `s`
--> $DIR/intra-links-disambiguator-mismatch.rs:44:14
|
LL | /// Link to [const@s]
| ^^^^^^^ help: to link to the static, use its disambiguator: `static@s`
|
= note: this link resolved to a static, which is not a constant

error: unresolved link to `c`
error: incompatible link kind for `c`
--> $DIR/intra-links-disambiguator-mismatch.rs:49:14
|
LL | /// Link to [static@c]
| ^^^^^^^^ help: to link to the constant, use its disambiguator: `const@c`
|
= note: this link resolved to a constant, which is not a static

error: unresolved link to `c`
error: incompatible link kind for `c`
--> $DIR/intra-links-disambiguator-mismatch.rs:54:14
|
LL | /// Link to [fn@c]
| ^^^^ help: to link to the constant, use its disambiguator: `const@c`
|
= note: this link resolved to a constant, which is not a function

error: unresolved link to `c`
error: incompatible link kind for `c`
--> $DIR/intra-links-disambiguator-mismatch.rs:59:14
|
LL | /// Link to [c()]
Expand Down

0 comments on commit fc273a0

Please sign in to comment.