only move access_levels/external_traits after early passes
This commit is contained in:
parent
457efc111a
commit
6aa74939bf
4 changed files with 8 additions and 14 deletions
|
@ -209,9 +209,6 @@ impl<'a, 'tcx, 'rcx, 'cstore> Clean<Crate> for visit_ast::RustdocVisitor<'a, 'tc
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
let mut access_levels = cx.access_levels.borrow_mut();
|
|
||||||
let mut external_traits = cx.external_traits.borrow_mut();
|
|
||||||
|
|
||||||
Crate {
|
Crate {
|
||||||
name,
|
name,
|
||||||
version: None,
|
version: None,
|
||||||
|
@ -219,8 +216,8 @@ impl<'a, 'tcx, 'rcx, 'cstore> Clean<Crate> for visit_ast::RustdocVisitor<'a, 'tc
|
||||||
module: Some(module),
|
module: Some(module),
|
||||||
externs,
|
externs,
|
||||||
primitives,
|
primitives,
|
||||||
access_levels: Arc::new(mem::replace(&mut access_levels, Default::default())),
|
access_levels: Arc::new(Default::default()),
|
||||||
external_traits: mem::replace(&mut external_traits, Default::default()),
|
external_traits: Default::default(),
|
||||||
masked_crates,
|
masked_crates,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,6 +41,7 @@ use std::cell::RefCell;
|
||||||
use std::mem;
|
use std::mem;
|
||||||
use rustc_data_structures::sync::{self, Lrc};
|
use rustc_data_structures::sync::{self, Lrc};
|
||||||
use std::rc::Rc;
|
use std::rc::Rc;
|
||||||
|
use std::sync::Arc;
|
||||||
use std::path::PathBuf;
|
use std::path::PathBuf;
|
||||||
|
|
||||||
use visit_ast::RustdocVisitor;
|
use visit_ast::RustdocVisitor;
|
||||||
|
@ -599,6 +600,9 @@ pub fn run_core(search_paths: SearchPaths,
|
||||||
|
|
||||||
ctxt.sess().abort_if_errors();
|
ctxt.sess().abort_if_errors();
|
||||||
|
|
||||||
|
krate.access_levels = Arc::new(ctxt.access_levels.into_inner());
|
||||||
|
krate.external_traits = ctxt.external_traits.into_inner();
|
||||||
|
|
||||||
(krate, ctxt.renderinfo.into_inner(), passes)
|
(krate, ctxt.renderinfo.into_inner(), passes)
|
||||||
}), &sess)
|
}), &sess)
|
||||||
})
|
})
|
||||||
|
|
|
@ -88,12 +88,5 @@ pub fn collect_trait_impls(mut krate: Crate, cx: &DocContext) -> Crate {
|
||||||
panic!("collect-trait-impls can't run");
|
panic!("collect-trait-impls can't run");
|
||||||
}
|
}
|
||||||
|
|
||||||
// pulling in the impls puts their trait info into the DocContext, but that's already been
|
|
||||||
// drained by now, so stuff that info into the Crate so the rendering can pick it up
|
|
||||||
let mut external_traits = cx.external_traits.borrow_mut();
|
|
||||||
for (did, trait_) in external_traits.drain() {
|
|
||||||
krate.external_traits.entry(did).or_insert(trait_);
|
|
||||||
}
|
|
||||||
|
|
||||||
krate
|
krate
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,10 +22,10 @@ pub const STRIP_PRIVATE: Pass =
|
||||||
|
|
||||||
/// Strip private items from the point of view of a crate or externally from a
|
/// Strip private items from the point of view of a crate or externally from a
|
||||||
/// crate, specified by the `xcrate` flag.
|
/// crate, specified by the `xcrate` flag.
|
||||||
pub fn strip_private(mut krate: clean::Crate, _: &DocContext) -> clean::Crate {
|
pub fn strip_private(mut krate: clean::Crate, cx: &DocContext) -> clean::Crate {
|
||||||
// This stripper collects all *retained* nodes.
|
// This stripper collects all *retained* nodes.
|
||||||
let mut retained = DefIdSet();
|
let mut retained = DefIdSet();
|
||||||
let access_levels = krate.access_levels.clone();
|
let access_levels = cx.access_levels.borrow().clone();
|
||||||
|
|
||||||
// strip all private items
|
// strip all private items
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue