diff options
| author | Joshua Nelson <jyn514@gmail.com> | 2020-08-05 20:46:02 -0400 |
|---|---|---|
| committer | Joshua Nelson <jyn514@gmail.com> | 2020-08-05 20:46:02 -0400 |
| commit | 2dad90d8b5c33c3aeef146d709b7f9ae66db49f4 (patch) | |
| tree | 8fe376b89dc494b495118b60873a2cb6d94e90da | |
| parent | fc273a035dfb352fd90246dd2560c807701eeea7 (diff) | |
| download | rust-2dad90d8b5c33c3aeef146d709b7f9ae66db49f4.tar.gz rust-2dad90d8b5c33c3aeef146d709b7f9ae66db49f4.zip | |
Suggest f() for functions and add a test case
3 files changed, 16 insertions, 2 deletions
diff --git a/src/librustdoc/passes/collect_intra_doc_links.rs b/src/librustdoc/passes/collect_intra_doc_links.rs index 8e485b97830..ef44c9c937d 100644 --- a/src/librustdoc/passes/collect_intra_doc_links.rs +++ b/src/librustdoc/passes/collect_intra_doc_links.rs @@ -893,6 +893,8 @@ impl Disambiguator { fn display_for(kind: DefKind, path_str: &str) -> String { if kind == DefKind::Macro(MacroKind::Bang) { return format!("{}!", path_str); + } else if kind == DefKind::Fn || kind == DefKind::AssocFn { + return format!("{}()", path_str); } let prefix = match kind { DefKind::Struct => "struct", @@ -904,7 +906,6 @@ impl Disambiguator { "const" } DefKind::Static => "static", - DefKind::Fn | DefKind::AssocFn => "fn", DefKind::Macro(MacroKind::Derive) => "derive", // Now handle things that don't have a specific disambiguator _ => match kind diff --git a/src/test/rustdoc-ui/intra-links-disambiguator-mismatch.rs b/src/test/rustdoc-ui/intra-links-disambiguator-mismatch.rs index 3bc08b23341..1a7a2fce7a3 100644 --- a/src/test/rustdoc-ui/intra-links-disambiguator-mismatch.rs +++ b/src/test/rustdoc-ui/intra-links-disambiguator-mismatch.rs @@ -60,4 +60,9 @@ trait T {} //~^ ERROR incompatible link kind for `c` //~| NOTE this link resolved //~| HELP use its disambiguator + +/// Link to [const@f] +//~^ ERROR incompatible link kind for `f` +//~| NOTE this link resolved +//~| HELP use its disambiguator pub fn f() {} diff --git a/src/test/rustdoc-ui/intra-links-disambiguator-mismatch.stderr b/src/test/rustdoc-ui/intra-links-disambiguator-mismatch.stderr index 8eb582512c0..9edf838f9d8 100644 --- a/src/test/rustdoc-ui/intra-links-disambiguator-mismatch.stderr +++ b/src/test/rustdoc-ui/intra-links-disambiguator-mismatch.stderr @@ -83,5 +83,13 @@ LL | /// Link to [c()] | = note: this link resolved to a constant, which is not a function -error: aborting due to 10 previous errors +error: incompatible link kind for `f` + --> $DIR/intra-links-disambiguator-mismatch.rs:64:14 + | +LL | /// Link to [const@f] + | ^^^^^^^ help: to link to the function, use its disambiguator: `f()` + | + = note: this link resolved to a function, which is not a constant + +error: aborting due to 11 previous errors |
