Skip to content

Commit 0e316e2

Browse files
committed
Fix HIR map validation
1 parent 8b16b02 commit 0e316e2

File tree

3 files changed

+16
-12
lines changed

3 files changed

+16
-12
lines changed

src/librustc/hir/map/hir_id_validator.rs

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,20 @@
1+
use crate::hir::map::Map;
12
use crate::ty::TyCtxt;
2-
/*use rustc_data_structures::fx::FxHashSet;
3+
use rustc_data_structures::fx::FxHashSet;
34
use rustc_data_structures::sync::{par_iter, Lock, ParallelIterator};
45
use rustc_hir as hir;
56
use rustc_hir::def_id::{DefId, DefIndex, CRATE_DEF_INDEX};
67
use rustc_hir::intravisit;
78
use rustc_hir::itemlikevisit::ItemLikeVisitor;
8-
use rustc_hir::{HirId, ItemLocalId};*/
9+
use rustc_hir::{HirId, ItemLocalId};
910

10-
pub fn check_crate(_tcx: TyCtxt<'_>) {
11-
/*tcx.dep_graph.assert_ignored();
11+
pub fn check_crate(tcx: TyCtxt<'_>) {
12+
tcx.dep_graph.assert_ignored();
1213

1314
let errors = Lock::new(Vec::new());
15+
let hir_map = tcx.hir();
1416

15-
par_iter(&hir_map.krate.modules).for_each(|(module_id, _)| {
17+
par_iter(&hir_map.krate().modules).for_each(|(module_id, _)| {
1618
let local_def_id = hir_map.local_def_id(*module_id);
1719
hir_map.visit_item_likes_in_module(
1820
local_def_id,
@@ -25,23 +27,23 @@ pub fn check_crate(_tcx: TyCtxt<'_>) {
2527
if !errors.is_empty() {
2628
let message = errors.iter().fold(String::new(), |s1, s2| s1 + "\n" + s2);
2729
tcx.sess.delay_span_bug(rustc_span::DUMMY_SP, &message);
28-
}*/
30+
}
2931
}
30-
/*
32+
3133
struct HirIdValidator<'a, 'hir> {
32-
hir_map: &'a EarlyMap<'hir>,
34+
hir_map: Map<'hir>,
3335
owner_def_index: Option<DefIndex>,
3436
hir_ids_seen: FxHashSet<ItemLocalId>,
3537
errors: &'a Lock<Vec<String>>,
3638
}
3739

3840
struct OuterVisitor<'a, 'hir> {
39-
hir_map: &'a EarlyMap<'hir>,
41+
hir_map: Map<'hir>,
4042
errors: &'a Lock<Vec<String>>,
4143
}
4244

4345
impl<'a, 'hir> OuterVisitor<'a, 'hir> {
44-
fn new_inner_visitor(&self, hir_map: &'a EarlyMap<'hir>) -> HirIdValidator<'a, 'hir> {
46+
fn new_inner_visitor(&self, hir_map: Map<'hir>) -> HirIdValidator<'a, 'hir> {
4547
HirIdValidator {
4648
hir_map,
4749
owner_def_index: None,
@@ -133,7 +135,7 @@ impl<'a, 'hir> HirIdValidator<'a, 'hir> {
133135
}
134136

135137
impl<'a, 'hir> intravisit::Visitor<'hir> for HirIdValidator<'a, 'hir> {
136-
type Map = EarlyMap<'hir>;
138+
type Map = Map<'hir>;
137139

138140
fn nested_visit_map(&mut self) -> intravisit::NestedVisitorMap<Self::Map> {
139141
intravisit::NestedVisitorMap::OnlyBodies(self.hir_map)
@@ -173,4 +175,3 @@ impl<'a, 'hir> intravisit::Visitor<'hir> for HirIdValidator<'a, 'hir> {
173175
// different owner.
174176
}
175177
}
176-
*/

src/librustc/hir/map/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ pub mod blocks;
2525
mod collector;
2626
pub mod definitions;
2727
mod hir_id_validator;
28+
pub use hir_id_validator::check_crate;
2829

2930
/// Represents an entry and its parent `HirId`.
3031
#[derive(Copy, Clone, Debug)]

src/librustc_interface/passes.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -762,6 +762,8 @@ pub fn create_global_ctxt<'tcx>(
762762
fn analysis(tcx: TyCtxt<'_>, cnum: CrateNum) -> Result<()> {
763763
assert_eq!(cnum, LOCAL_CRATE);
764764

765+
rustc::hir::map::check_crate(tcx);
766+
765767
let sess = tcx.sess;
766768
let mut entry_point = None;
767769

0 commit comments

Comments
 (0)