diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2022-01-30 00:04:15 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-01-30 00:04:15 +0100 |
| commit | 605ffd6113dc49a9b10ea2b5aa6ca41a275bb9ad (patch) | |
| tree | 3cd698034f471c7dda9cb4e746684b6c41e17e64 /src/test/rustdoc | |
| parent | 329753e24867a5dd8a3c0467e220ef28878d118c (diff) | |
| parent | 3903ca197e55f209b2415e566b4b8f407f6fe899 (diff) | |
| download | rust-605ffd6113dc49a9b10ea2b5aa6ca41a275bb9ad.tar.gz rust-605ffd6113dc49a9b10ea2b5aa6ca41a275bb9ad.zip | |
Rollup merge of #93441 - notriddle:notriddle/collect-crate-doc-links-very-early, r=petrochenkov
rustdoc: load the set of in-scope traits for modules with no docstring
Fixes #93428
This fix is a response to a couple of special cases related to the `module_id`, which is eventually used for trait candidates:
* The module id is always set to the current crate, when checking `crate::`.
Normally, the set of in-scope traits would be set in `load_links_in_attrs`, but if there are no doc comments, then that loop will never run.
* the module id is set to the parent module, when resolving a module that is spelled like this:
// Notice how we use an outlined doc comment here!
// [`Test::my_fn`]
mod something {
}
As with the above problem with `crate::`, we need to make sure the module gets its traits in scope resolved, even if it has no doc comments of its own.
Diffstat (limited to 'src/test/rustdoc')
| -rw-r--r-- | src/test/rustdoc/intra-doc/crate-relative.rs | 13 | ||||
| -rw-r--r-- | src/test/rustdoc/intra-doc/mod-relative.rs | 17 |
2 files changed, 30 insertions, 0 deletions
diff --git a/src/test/rustdoc/intra-doc/crate-relative.rs b/src/test/rustdoc/intra-doc/crate-relative.rs new file mode 100644 index 00000000000..bacbcabfc60 --- /dev/null +++ b/src/test/rustdoc/intra-doc/crate-relative.rs @@ -0,0 +1,13 @@ +pub struct Test<'a> { + data: &'a (), +} + +impl<'a> Test<'a> { + pub fn do_test(&self) {} +} + +// @has crate_relative/demo/index.html +// @has - '//a/@href' '../struct.Test.html#method.do_test' +pub mod demo { + //! [`crate::Test::do_test`] +} diff --git a/src/test/rustdoc/intra-doc/mod-relative.rs b/src/test/rustdoc/intra-doc/mod-relative.rs new file mode 100644 index 00000000000..49d3399b972 --- /dev/null +++ b/src/test/rustdoc/intra-doc/mod-relative.rs @@ -0,0 +1,17 @@ +pub mod wrapper { + + pub struct Test<'a> { + data: &'a (), + } + + impl<'a> Test<'a> { + pub fn do_test(&self) {} + } + + // @has mod_relative/wrapper/demo/index.html + // @has - '//a/@href' '../struct.Test.html#method.do_test' + /// [`Test::do_test`] + pub mod demo { + } + +} |
