Rollup merge of #76082 - jyn514:top-level-links, r=ollie27,GuillaumeGomez
Fix intra-doc links on pub re-exports Partial fix for https://github.com/rust-lang/rust/issues/76073 - This removes the incorrect error, but doesn't show the documentation anywhere. r? @GuillaumeGomez
This commit is contained in:
commit
f1eb5f800f
@ -582,6 +582,9 @@ impl<'a, 'tcx> DocFolder for LinkCollector<'a, 'tcx> {
|
||||
let parent_node = if item.is_fake() {
|
||||
// FIXME: is this correct?
|
||||
None
|
||||
// If we're documenting the crate root itself, it has no parent. Use the root instead.
|
||||
} else if item.def_id.is_top_level_module() {
|
||||
Some(item.def_id)
|
||||
} else {
|
||||
let mut current = item.def_id;
|
||||
// The immediate parent might not always be a module.
|
||||
@ -593,6 +596,12 @@ impl<'a, 'tcx> DocFolder for LinkCollector<'a, 'tcx> {
|
||||
}
|
||||
current = parent;
|
||||
} else {
|
||||
debug!(
|
||||
"{:?} has no parent (kind={:?}, original was {:?})",
|
||||
current,
|
||||
self.cx.tcx.def_kind(current),
|
||||
item.def_id
|
||||
);
|
||||
break None;
|
||||
}
|
||||
}
|
||||
|
4
src/test/rustdoc/auxiliary/intra-link-pub-use.rs
Normal file
4
src/test/rustdoc/auxiliary/intra-link-pub-use.rs
Normal file
@ -0,0 +1,4 @@
|
||||
#![crate_name = "inner"]
|
||||
|
||||
/// Documentation, including a link to [std::ptr]
|
||||
pub fn f() {}
|
27
src/test/rustdoc/intra-link-pub-use.rs
Normal file
27
src/test/rustdoc/intra-link-pub-use.rs
Normal file
@ -0,0 +1,27 @@
|
||||
// aux-build: intra-link-pub-use.rs
|
||||
#![deny(broken_intra_doc_links)]
|
||||
#![crate_name = "outer"]
|
||||
|
||||
extern crate inner;
|
||||
|
||||
/// [mod@std::env] [g]
|
||||
|
||||
// FIXME: This can't be tested because rustdoc doesn't show documentation on pub re-exports.
|
||||
// Until then, comment out the `htmldocck` test.
|
||||
// This test still does something; namely check that no incorrect errors are emitted when
|
||||
// documenting the re-export.
|
||||
|
||||
// @has outer/index.html
|
||||
// @ has - '//a[@href="https://doc.rust-lang.org/nightly/std/env/fn.var.html"]' "std::env"
|
||||
// @ has - '//a[@href="../outer/fn.f.html"]' "g"
|
||||
pub use f as g;
|
||||
|
||||
// FIXME: same as above
|
||||
/// [std::env]
|
||||
extern crate self as _;
|
||||
|
||||
// Make sure the documentation is actually correct by documenting an inlined re-export
|
||||
/// [mod@std::env]
|
||||
// @has outer/fn.f.html
|
||||
// @has - '//a[@href="https://doc.rust-lang.org/nightly/std/env/index.html"]' "std::env"
|
||||
pub use inner::f;
|
Loading…
x
Reference in New Issue
Block a user