mirror of
https://github.com/rust-lang/rust.git
synced 2025-05-07 15:37:39 +00:00
Drop walk_crate_and_attributes.
This commit is contained in:
parent
bd2f08c22f
commit
df148e4efb
@ -32,7 +32,6 @@
|
|||||||
//! example generator inference, and possibly also HIR borrowck.
|
//! example generator inference, and possibly also HIR borrowck.
|
||||||
|
|
||||||
use crate::hir::*;
|
use crate::hir::*;
|
||||||
use crate::hir_id::CRATE_HIR_ID;
|
|
||||||
use crate::itemlikevisit::{ItemLikeVisitor, ParItemLikeVisitor};
|
use crate::itemlikevisit::{ItemLikeVisitor, ParItemLikeVisitor};
|
||||||
use rustc_ast::walk_list;
|
use rustc_ast::walk_list;
|
||||||
use rustc_ast::{Attribute, Label};
|
use rustc_ast::{Attribute, Label};
|
||||||
@ -477,17 +476,6 @@ pub trait Visitor<'v>: Sized {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Walks the contents of a crate. See also `Crate::visit_all_items`.
|
|
||||||
pub fn walk_crate_and_attributes<'v, V: Visitor<'v>>(visitor: &mut V, krate: &'v Crate<'v>) {
|
|
||||||
let top_mod = krate.module();
|
|
||||||
visitor.visit_mod(top_mod, top_mod.inner, CRATE_HIR_ID);
|
|
||||||
for (&id, attrs) in krate.attrs.iter() {
|
|
||||||
for a in *attrs {
|
|
||||||
visitor.visit_attribute(id, a)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn walk_mod<'v, V: Visitor<'v>>(visitor: &mut V, module: &'v Mod<'v>, mod_hir_id: HirId) {
|
pub fn walk_mod<'v, V: Visitor<'v>>(visitor: &mut V, module: &'v Mod<'v>, mod_hir_id: HirId) {
|
||||||
visitor.visit_id(mod_hir_id);
|
visitor.visit_id(mod_hir_id);
|
||||||
for &item_id in module.item_ids {
|
for &item_id in module.item_ids {
|
||||||
|
@ -464,10 +464,6 @@ pub fn lower_to_hir<'res, 'tcx>(
|
|||||||
arena,
|
arena,
|
||||||
);
|
);
|
||||||
|
|
||||||
if sess.opts.debugging_opts.hir_stats {
|
|
||||||
hir_stats::print_hir_stats(&hir_crate);
|
|
||||||
}
|
|
||||||
|
|
||||||
sess.time("early_lint_checks", || {
|
sess.time("early_lint_checks", || {
|
||||||
rustc_lint::check_ast_crate(
|
rustc_lint::check_ast_crate(
|
||||||
sess,
|
sess,
|
||||||
|
@ -11,6 +11,10 @@ use rustc_middle::ty::TyCtxt;
|
|||||||
pub fn check_crate(tcx: TyCtxt<'_>) {
|
pub fn check_crate(tcx: TyCtxt<'_>) {
|
||||||
tcx.dep_graph.assert_ignored();
|
tcx.dep_graph.assert_ignored();
|
||||||
|
|
||||||
|
if tcx.sess.opts.debugging_opts.hir_stats {
|
||||||
|
crate::hir_stats::print_hir_stats(tcx);
|
||||||
|
}
|
||||||
|
|
||||||
let errors = Lock::new(Vec::new());
|
let errors = Lock::new(Vec::new());
|
||||||
let hir_map = tcx.hir();
|
let hir_map = tcx.hir();
|
||||||
|
|
||||||
|
@ -9,6 +9,7 @@ use rustc_hir as hir;
|
|||||||
use rustc_hir::intravisit as hir_visit;
|
use rustc_hir::intravisit as hir_visit;
|
||||||
use rustc_hir::HirId;
|
use rustc_hir::HirId;
|
||||||
use rustc_middle::hir::map::Map;
|
use rustc_middle::hir::map::Map;
|
||||||
|
use rustc_middle::ty::TyCtxt;
|
||||||
use rustc_middle::util::common::to_readable_str;
|
use rustc_middle::util::common::to_readable_str;
|
||||||
use rustc_span::Span;
|
use rustc_span::Span;
|
||||||
|
|
||||||
@ -25,18 +26,19 @@ struct NodeData {
|
|||||||
}
|
}
|
||||||
|
|
||||||
struct StatCollector<'k> {
|
struct StatCollector<'k> {
|
||||||
krate: Option<&'k hir::Crate<'k>>,
|
krate: Option<Map<'k>>,
|
||||||
data: FxHashMap<&'static str, NodeData>,
|
data: FxHashMap<&'static str, NodeData>,
|
||||||
seen: FxHashSet<Id>,
|
seen: FxHashSet<Id>,
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn print_hir_stats(krate: &hir::Crate<'_>) {
|
pub fn print_hir_stats(tcx: TyCtxt<'_>) {
|
||||||
let mut collector = StatCollector {
|
let mut collector = StatCollector {
|
||||||
krate: Some(krate),
|
krate: Some(tcx.hir()),
|
||||||
data: FxHashMap::default(),
|
data: FxHashMap::default(),
|
||||||
seen: FxHashSet::default(),
|
seen: FxHashSet::default(),
|
||||||
};
|
};
|
||||||
hir_visit::walk_crate_and_attributes(&mut collector, krate);
|
tcx.hir().walk_crate(&mut collector);
|
||||||
|
tcx.hir().walk_attributes(&mut collector);
|
||||||
collector.print("HIR STATS");
|
collector.print("HIR STATS");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user