rustdoc: Move doc-reachability visiting back to cleaning

It populates `cx.cache.access_levels`, which seems to be needed during
cleaning since a bunch of tests are failing.
This commit is contained in:
Noah Lev 2021-11-19 22:00:37 -05:00
parent 6c017f071d
commit bbc3825d26
2 changed files with 6 additions and 3 deletions

View File

@ -7,6 +7,7 @@
}; };
use crate::core::DocContext; use crate::core::DocContext;
use crate::formats::item_type::ItemType; use crate::formats::item_type::ItemType;
use crate::visit_lib::LibEmbargoVisitor;
use rustc_ast as ast; use rustc_ast as ast;
use rustc_ast::tokenstream::TokenTree; use rustc_ast::tokenstream::TokenTree;
@ -26,6 +27,11 @@
crate fn krate(cx: &mut DocContext<'_>) -> Crate { crate fn krate(cx: &mut DocContext<'_>) -> Crate {
let module = crate::visit_ast::RustdocVisitor::new(cx).visit(); let module = crate::visit_ast::RustdocVisitor::new(cx).visit();
for &cnum in cx.tcx.crates(()) {
// Analyze doc-reachability for extern items
LibEmbargoVisitor::new(cx).visit_lib(cnum);
}
// Clean the crate, translating the entire librustc_ast AST to one that is // Clean the crate, translating the entire librustc_ast AST to one that is
// understood by rustdoc. // understood by rustdoc.
let mut module = module.clean(cx); let mut module = module.clean(cx);

View File

@ -14,7 +14,6 @@
use crate::html::markdown::short_markdown_summary; use crate::html::markdown::short_markdown_summary;
use crate::html::render::cache::{get_index_search_type, ExternalLocation}; use crate::html::render::cache::{get_index_search_type, ExternalLocation};
use crate::html::render::IndexItem; use crate::html::render::IndexItem;
use crate::visit_lib::LibEmbargoVisitor;
/// This cache is used to store information about the [`clean::Crate`] being /// This cache is used to store information about the [`clean::Crate`] being
/// rendered in order to provide more useful documentation. This contains /// rendered in order to provide more useful documentation. This contains
@ -148,8 +147,6 @@ impl Cache {
// FIXME: this part is specific to HTML so it'd be nice to remove it from the common code // FIXME: this part is specific to HTML so it'd be nice to remove it from the common code
for &crate_num in cx.tcx.crates(()) { for &crate_num in cx.tcx.crates(()) {
let e = ExternalCrate { crate_num }; let e = ExternalCrate { crate_num };
// Analyze doc-reachability for extern items
LibEmbargoVisitor::new(cx).visit_lib(e.crate_num);
let name = e.name(tcx); let name = e.name(tcx);
let render_options = &cx.render_options; let render_options = &cx.render_options;