Auto merge of #88880 - cjgillot:no-krate, r=oli-obk
Rework HIR API to make invocations of the hir_crate query harder. `hir_crate` forces the recomputation of queries that depend on it. This PR aims at avoiding useless invocations of `hir_crate` by making dependent code go through `tcx.hir()`.
This commit is contained in:
commit
c02371c442
64 changed files with 193 additions and 209 deletions
|
|
@ -230,8 +230,7 @@ impl ExternalCrate {
|
|||
};
|
||||
if root.is_local() {
|
||||
tcx.hir()
|
||||
.krate()
|
||||
.module()
|
||||
.root_module()
|
||||
.item_ids
|
||||
.iter()
|
||||
.filter_map(|&id| {
|
||||
|
|
@ -297,8 +296,7 @@ impl ExternalCrate {
|
|||
|
||||
if root.is_local() {
|
||||
tcx.hir()
|
||||
.krate()
|
||||
.module()
|
||||
.root_module()
|
||||
.item_ids
|
||||
.iter()
|
||||
.filter_map(|&id| {
|
||||
|
|
|
|||
|
|
@ -26,8 +26,7 @@ mod tests;
|
|||
crate fn krate(cx: &mut DocContext<'_>) -> Crate {
|
||||
use crate::visit_lib::LibEmbargoVisitor;
|
||||
|
||||
let krate = cx.tcx.hir().krate();
|
||||
let module = crate::visit_ast::RustdocVisitor::new(cx).visit(krate);
|
||||
let module = crate::visit_ast::RustdocVisitor::new(cx).visit();
|
||||
|
||||
let mut externs = Vec::new();
|
||||
for &cnum in cx.tcx.crates(()).iter() {
|
||||
|
|
|
|||
|
|
@ -71,12 +71,12 @@ impl<'a, 'tcx> RustdocVisitor<'a, 'tcx> {
|
|||
self.exact_paths.entry(did).or_insert_with(|| def_id_to_path(tcx, did));
|
||||
}
|
||||
|
||||
crate fn visit(mut self, krate: &'tcx hir::Crate<'_>) -> Module<'tcx> {
|
||||
let span = krate.module().inner;
|
||||
crate fn visit(mut self) -> Module<'tcx> {
|
||||
let span = self.cx.tcx.def_span(CRATE_DEF_ID);
|
||||
let mut top_level_module = self.visit_mod_contents(
|
||||
&Spanned { span, node: hir::VisibilityKind::Public },
|
||||
hir::CRATE_HIR_ID,
|
||||
&krate.module(),
|
||||
self.cx.tcx.hir().root_module(),
|
||||
self.cx.tcx.crate_name(LOCAL_CRATE),
|
||||
);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue