Skip to content

Commit f7879de

Browse files
committed
---
yaml --- r: 276575 b: refs/heads/try c: 1744f55 h: refs/heads/master i: 276573: fb5b634 276571: f33f9d4 276567: c7857ba 276559: 177681e 276543: c656d3e
1 parent 43af851 commit f7879de

File tree

3 files changed

+12
-39
lines changed

3 files changed

+12
-39
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
refs/heads/master: 6dbb0e86aec11050480beb76eade6fb805010ba7
33
refs/heads/snap-stage3: 235d77457d80b549dad3ac36d94f235208a1eafb
4-
refs/heads/try: 0bed9aea2db3ab8338d8fe1ff7583395ceeb1c87
4+
refs/heads/try: 1744f55ad7452e72cea2b875e4f53387575ce461
55
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
66
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
77
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503

branches/try/src/librustc_resolve/build_reduced_graph.rs

Lines changed: 10 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -43,26 +43,6 @@ use rustc_front::hir::{PathListIdent, PathListMod, StmtDecl};
4343
use rustc_front::hir::{Variant, ViewPathGlob, ViewPathList, ViewPathSimple};
4444
use rustc_front::intravisit::{self, Visitor};
4545

46-
use std::ops::{Deref, DerefMut};
47-
48-
struct GraphBuilder<'a, 'b: 'a, 'tcx: 'b> {
49-
resolver: &'a mut Resolver<'b, 'tcx>,
50-
}
51-
52-
impl<'a, 'b:'a, 'tcx:'b> Deref for GraphBuilder<'a, 'b, 'tcx> {
53-
type Target = Resolver<'b, 'tcx>;
54-
55-
fn deref(&self) -> &Resolver<'b, 'tcx> {
56-
&*self.resolver
57-
}
58-
}
59-
60-
impl<'a, 'b:'a, 'tcx:'b> DerefMut for GraphBuilder<'a, 'b, 'tcx> {
61-
fn deref_mut(&mut self) -> &mut Resolver<'b, 'tcx> {
62-
&mut *self.resolver
63-
}
64-
}
65-
6646
trait ToNameBinding<'a> {
6747
fn to_name_binding(self) -> NameBinding<'a>;
6848
}
@@ -80,12 +60,12 @@ impl<'a> ToNameBinding<'a> for (Def, Span, DefModifiers) {
8060
}
8161
}
8262

83-
impl<'a, 'b:'a, 'tcx:'b> GraphBuilder<'a, 'b, 'tcx> {
63+
impl<'b, 'tcx:'b> Resolver<'b, 'tcx> {
8464
/// Constructs the reduced graph for the entire crate.
85-
fn build_reduced_graph(self, krate: &hir::Crate) {
65+
pub fn build_reduced_graph(&mut self, krate: &hir::Crate) {
8666
let mut visitor = BuildReducedGraphVisitor {
8767
parent: self.graph_root,
88-
builder: self,
68+
resolver: self,
8969
};
9070
intravisit::walk_crate(&mut visitor, krate);
9171
}
@@ -573,50 +553,43 @@ impl<'a, 'b:'a, 'tcx:'b> GraphBuilder<'a, 'b, 'tcx> {
573553
module_.add_import_directive(directive);
574554
self.unresolved_imports += 1;
575555
}
576-
}
577556

578-
impl<'a, 'tcx> Resolver<'a, 'tcx> {
579557
/// Ensures that the reduced graph rooted at the given external module
580558
/// is built, building it if it is not.
581-
pub fn populate_module_if_necessary(&mut self, module: Module<'a>) {
559+
pub fn populate_module_if_necessary(&mut self, module: Module<'b>) {
582560
if module.populated.get() { return }
583-
let mut builder = GraphBuilder { resolver: self };
584561
for child in self.session.cstore.item_children(module.def_id().unwrap()) {
585-
builder.build_reduced_graph_for_external_crate_def(module, child);
562+
self.build_reduced_graph_for_external_crate_def(module, child);
586563
}
587564
module.populated.set(true)
588565
}
589566
}
590567

591568
struct BuildReducedGraphVisitor<'a, 'b: 'a, 'tcx: 'b> {
592-
builder: GraphBuilder<'a, 'b, 'tcx>,
569+
resolver: &'a mut Resolver<'b, 'tcx>,
593570
parent: Module<'b>,
594571
}
595572

596573
impl<'a, 'b, 'v, 'tcx> Visitor<'v> for BuildReducedGraphVisitor<'a, 'b, 'tcx> {
597574
fn visit_nested_item(&mut self, item: hir::ItemId) {
598-
self.visit_item(self.builder.resolver.ast_map.expect_item(item.id))
575+
self.visit_item(self.resolver.ast_map.expect_item(item.id))
599576
}
600577

601578
fn visit_item(&mut self, item: &Item) {
602579
let old_parent = self.parent;
603-
self.builder.build_reduced_graph_for_item(item, &mut self.parent);
580+
self.resolver.build_reduced_graph_for_item(item, &mut self.parent);
604581
intravisit::walk_item(self, item);
605582
self.parent = old_parent;
606583
}
607584

608585
fn visit_foreign_item(&mut self, foreign_item: &ForeignItem) {
609-
self.builder.build_reduced_graph_for_foreign_item(foreign_item, &self.parent);
586+
self.resolver.build_reduced_graph_for_foreign_item(foreign_item, &self.parent);
610587
}
611588

612589
fn visit_block(&mut self, block: &Block) {
613590
let old_parent = self.parent;
614-
self.builder.build_reduced_graph_for_block(block, &mut self.parent);
591+
self.resolver.build_reduced_graph_for_block(block, &mut self.parent);
615592
intravisit::walk_block(self, block);
616593
self.parent = old_parent;
617594
}
618595
}
619-
620-
pub fn build_reduced_graph(resolver: &mut Resolver, krate: &hir::Crate) {
621-
GraphBuilder { resolver: resolver }.build_reduced_graph(krate);
622-
}

branches/try/src/librustc_resolve/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3734,7 +3734,7 @@ pub fn create_resolver<'a, 'tcx>(session: &'a Session,
37343734

37353735
resolver.callback = callback;
37363736

3737-
build_reduced_graph::build_reduced_graph(&mut resolver, krate);
3737+
resolver.build_reduced_graph(krate);
37383738

37393739
resolve_imports::resolve_imports(&mut resolver);
37403740

0 commit comments

Comments
 (0)