Clean up now that visitors only need &clean::Crate
This commit is contained in:
parent
28bdf892d6
commit
6215f7c85f
@ -461,9 +461,9 @@ impl<'tcx> FormatRenderer<'tcx> for Context<'tcx> {
|
||||
}
|
||||
}
|
||||
|
||||
let (mut krate, local_sources, matches) = collect_spans_and_sources(
|
||||
let (local_sources, matches) = collect_spans_and_sources(
|
||||
tcx,
|
||||
krate,
|
||||
&krate,
|
||||
&src_root,
|
||||
include_sources,
|
||||
generate_link_to_definition,
|
||||
@ -522,7 +522,7 @@ impl<'tcx> FormatRenderer<'tcx> for Context<'tcx> {
|
||||
};
|
||||
|
||||
if emit_crate {
|
||||
krate = sources::render(&mut cx, krate)?;
|
||||
sources::render(&mut cx, &krate)?;
|
||||
}
|
||||
|
||||
// Build our search index
|
||||
|
@ -37,21 +37,21 @@ crate enum LinkFromSrc {
|
||||
/// only keep the `lo` and `hi`.
|
||||
crate fn collect_spans_and_sources(
|
||||
tcx: TyCtxt<'_>,
|
||||
krate: clean::Crate,
|
||||
krate: &clean::Crate,
|
||||
src_root: &Path,
|
||||
include_sources: bool,
|
||||
generate_link_to_definition: bool,
|
||||
) -> (clean::Crate, FxHashMap<PathBuf, String>, FxHashMap<Span, LinkFromSrc>) {
|
||||
) -> (FxHashMap<PathBuf, String>, FxHashMap<Span, LinkFromSrc>) {
|
||||
let mut visitor = SpanMapVisitor { tcx, matches: FxHashMap::default() };
|
||||
|
||||
if include_sources {
|
||||
if generate_link_to_definition {
|
||||
tcx.hir().walk_toplevel_module(&mut visitor);
|
||||
}
|
||||
let (krate, sources) = sources::collect_local_sources(tcx, src_root, krate);
|
||||
(krate, sources, visitor.matches)
|
||||
let sources = sources::collect_local_sources(tcx, src_root, &krate);
|
||||
(sources, visitor.matches)
|
||||
} else {
|
||||
(krate, Default::default(), Default::default())
|
||||
(Default::default(), Default::default())
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -16,25 +16,25 @@ use std::ffi::OsStr;
|
||||
use std::fs;
|
||||
use std::path::{Component, Path, PathBuf};
|
||||
|
||||
crate fn render(cx: &mut Context<'_>, krate: clean::Crate) -> Result<clean::Crate, Error> {
|
||||
crate fn render(cx: &mut Context<'_>, krate: &clean::Crate) -> Result<(), Error> {
|
||||
info!("emitting source files");
|
||||
|
||||
let dst = cx.dst.join("src").join(&*krate.name(cx.tcx()).as_str());
|
||||
cx.shared.ensure_dir(&dst)?;
|
||||
|
||||
let mut collector = SourceCollector { dst, cx, emitted_local_sources: FxHashSet::default() };
|
||||
collector.visit_crate(&krate);
|
||||
Ok(krate)
|
||||
collector.visit_crate(krate);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
crate fn collect_local_sources<'tcx>(
|
||||
tcx: TyCtxt<'tcx>,
|
||||
src_root: &Path,
|
||||
krate: clean::Crate,
|
||||
) -> (clean::Crate, FxHashMap<PathBuf, String>) {
|
||||
krate: &clean::Crate,
|
||||
) -> FxHashMap<PathBuf, String> {
|
||||
let mut lsc = LocalSourcesCollector { tcx, local_sources: FxHashMap::default(), src_root };
|
||||
lsc.visit_crate(&krate);
|
||||
(krate, lsc.local_sources)
|
||||
lsc.visit_crate(krate);
|
||||
lsc.local_sources
|
||||
}
|
||||
|
||||
struct LocalSourcesCollector<'a, 'tcx> {
|
||||
|
Loading…
x
Reference in New Issue
Block a user