diff options
| author | Dylan DPC <dylan.dpc@gmail.com> | 2020-12-31 22:20:49 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-12-31 22:20:49 +0100 |
| commit | 7d247c924692ad60f22aee90965639fce969f3d8 (patch) | |
| tree | c04232d35977a526790382d5ef4a58d4513c5f97 /src/librustdoc/passes | |
| parent | 55cfcd596fabf4758f31e098a14542a52c36f7ad (diff) | |
| parent | 5604a18a60fc99a4a7feb82a280546971adda52d (diff) | |
| download | rust-7d247c924692ad60f22aee90965639fce969f3d8.tar.gz rust-7d247c924692ad60f22aee90965639fce969f3d8.zip | |
Rollup merge of #80368 - camelid:rustdoc-succinct-vis, r=jyn514
rustdoc: Render visibilities succinctly Fixes #79139. r? `@jyn514`
Diffstat (limited to 'src/librustdoc/passes')
| -rw-r--r-- | src/librustdoc/passes/collect_intra_doc_links.rs | 26 |
1 files changed, 2 insertions, 24 deletions
diff --git a/src/librustdoc/passes/collect_intra_doc_links.rs b/src/librustdoc/passes/collect_intra_doc_links.rs index 63cb02af3bc..9f15038a353 100644 --- a/src/librustdoc/passes/collect_intra_doc_links.rs +++ b/src/librustdoc/passes/collect_intra_doc_links.rs @@ -31,7 +31,7 @@ use std::convert::{TryFrom, TryInto}; use std::mem; use std::ops::Range; -use crate::clean::{self, Crate, Item, ItemLink, PrimitiveType}; +use crate::clean::{self, utils::find_nearest_parent_module, Crate, Item, ItemLink, PrimitiveType}; use crate::core::DocContext; use crate::fold::DocFolder; use crate::html::markdown::markdown_links; @@ -830,31 +830,9 @@ impl<'a, 'tcx> DocFolder for LinkCollector<'a, 'tcx> { use rustc_middle::ty::DefIdTree; 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. - // Find the first parent which is. - loop { - if let Some(parent) = self.cx.tcx.parent(current) { - if self.cx.tcx.def_kind(parent) == DefKind::Mod { - break Some(parent); - } - current = parent; - } else { - debug!( - "{:?} has no parent (kind={:?}, original was {:?})", - current, - self.cx.tcx.def_kind(current), - item.def_id - ); - break None; - } - } + find_nearest_parent_module(self.cx.tcx, item.def_id) }; if parent_node.is_some() { |
