Auto merge of #33002 - mitaa:rdoc-cross-impls, r=alexcrichton
rustdoc: refine cross-crate impl inlining This changes the current rule that impls within `doc(hidden)` modules aren't inlined, to only inlining impls where the implemented trait and type are reachable in documentation. fixes #14586 fixes #31948 .. and also applies the reachability checking to cross-crate links. fixes #28480 r? @alexcrichton
This commit is contained in:
commit
478a33dabc
18 changed files with 473 additions and 130 deletions
|
|
@ -113,6 +113,7 @@ pub enum InlinedItemRef<'a> {
|
|||
/// LOCAL_CRATE in their DefId.
|
||||
pub const LOCAL_CRATE: ast::CrateNum = 0;
|
||||
|
||||
#[derive(Copy, Clone)]
|
||||
pub struct ChildItem {
|
||||
pub def: DefLike,
|
||||
pub name: ast::Name,
|
||||
|
|
|
|||
|
|
@ -15,10 +15,11 @@
|
|||
use util::nodemap::{DefIdSet, FnvHashMap};
|
||||
|
||||
use std::hash::Hash;
|
||||
use std::fmt;
|
||||
use syntax::ast::NodeId;
|
||||
|
||||
// Accessibility levels, sorted in ascending order
|
||||
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
|
||||
#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord)]
|
||||
pub enum AccessLevel {
|
||||
// Exported items + items participating in various kinds of public interfaces,
|
||||
// but not directly nameable. For example, if function `fn f() -> T {...}` is
|
||||
|
|
@ -56,6 +57,12 @@ impl<Id: Hash + Eq> Default for AccessLevels<Id> {
|
|||
}
|
||||
}
|
||||
|
||||
impl<Id: Hash + Eq + fmt::Debug> fmt::Debug for AccessLevels<Id> {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
fmt::Debug::fmt(&self.map, f)
|
||||
}
|
||||
}
|
||||
|
||||
/// A set containing all exported definitions from external crates.
|
||||
/// The set does not contain any entries from local crates.
|
||||
pub type ExternalExports = DefIdSet;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue