Skip to content

Commit f705c69

Browse files
committed
Simplify TyCtxt::create_and_enter.
1 parent 39e6ae2 commit f705c69

File tree

5 files changed

+18
-26
lines changed

5 files changed

+18
-26
lines changed

src/librustc/ty/context.rs

+4-6
Original file line numberDiff line numberDiff line change
@@ -762,11 +762,9 @@ impl<'a, 'gcx, 'tcx> TyCtxt<'a, 'gcx, 'tcx> {
762762
/// reference to the context, to allow formatting values that need it.
763763
pub fn create_and_enter<F, R>(s: &'tcx Session,
764764
arenas: &'tcx CtxtArenas<'tcx>,
765-
trait_map: TraitMap,
765+
resolutions: ty::Resolutions,
766766
named_region_map: resolve_lifetime::NamedRegionMap,
767767
map: ast_map::Map<'tcx>,
768-
freevars: FreevarMap,
769-
maybe_unused_trait_imports: NodeSet,
770768
region_maps: RegionMaps,
771769
lang_items: middle::lang_items::LanguageItems,
772770
stability: stability::Index<'tcx>,
@@ -790,7 +788,7 @@ impl<'a, 'gcx, 'tcx> TyCtxt<'a, 'gcx, 'tcx> {
790788
item_variance_map: RefCell::new(DepTrackingMap::new(dep_graph.clone())),
791789
variance_computed: Cell::new(false),
792790
sess: s,
793-
trait_map: trait_map,
791+
trait_map: resolutions.trait_map,
794792
tables: RefCell::new(Tables::empty()),
795793
impl_trait_refs: RefCell::new(DepTrackingMap::new(dep_graph.clone())),
796794
trait_defs: RefCell::new(DepTrackingMap::new(dep_graph.clone())),
@@ -802,8 +800,8 @@ impl<'a, 'gcx, 'tcx> TyCtxt<'a, 'gcx, 'tcx> {
802800
fulfilled_predicates: RefCell::new(fulfilled_predicates),
803801
map: map,
804802
mir_map: RefCell::new(DepTrackingMap::new(dep_graph.clone())),
805-
freevars: RefCell::new(freevars),
806-
maybe_unused_trait_imports: maybe_unused_trait_imports,
803+
freevars: RefCell::new(resolutions.freevars),
804+
maybe_unused_trait_imports: resolutions.maybe_unused_trait_imports,
807805
item_types: RefCell::new(DepTrackingMap::new(dep_graph.clone())),
808806
rcache: RefCell::new(FxHashMap()),
809807
tc_cache: RefCell::new(FxHashMap()),

src/librustc/ty/mod.rs

+8-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ pub use self::LvaluePreference::*;
1717
pub use self::fold::TypeFoldable;
1818

1919
use dep_graph::{self, DepNode};
20-
use hir::map as ast_map;
20+
use hir::{map as ast_map, FreevarMap, TraitMap};
2121
use middle;
2222
use hir::def::{Def, CtorKind, ExportMap};
2323
use hir::def_id::{CrateNum, DefId, CRATE_DEF_INDEX, LOCAL_CRATE};
@@ -112,6 +112,13 @@ pub struct CrateAnalysis<'tcx> {
112112
pub hir_ty_to_ty: NodeMap<Ty<'tcx>>,
113113
}
114114

115+
#[derive(Clone)]
116+
pub struct Resolutions {
117+
pub freevars: FreevarMap,
118+
pub trait_map: TraitMap,
119+
pub maybe_unused_trait_imports: NodeSet,
120+
}
121+
115122
#[derive(Copy, Clone)]
116123
pub enum DtorKind {
117124
NoDtor,

src/librustc_driver/driver.rs

+3-13
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11-
use rustc::hir;
12-
use rustc::hir::{map as hir_map, FreevarMap, TraitMap};
11+
use rustc::hir::{self, map as hir_map};
1312
use rustc::hir::lowering::lower_crate;
1413
use rustc_data_structures::stable_hasher::StableHasher;
1514
use rustc_mir as mir;
@@ -20,7 +19,7 @@ use rustc::session::search_paths::PathKind;
2019
use rustc::lint;
2120
use rustc::middle::{self, dependency_format, stability, reachable};
2221
use rustc::middle::privacy::AccessLevels;
23-
use rustc::ty::{self, TyCtxt};
22+
use rustc::ty::{self, TyCtxt, Resolutions};
2423
use rustc::util::common::time;
2524
use rustc::util::nodemap::{NodeSet, NodeMap};
2625
use rustc_borrowck as borrowck;
@@ -59,13 +58,6 @@ use syntax_ext;
5958

6059
use derive_registrar;
6160

62-
#[derive(Clone)]
63-
pub struct Resolutions {
64-
pub freevars: FreevarMap,
65-
pub trait_map: TraitMap,
66-
pub maybe_unused_trait_imports: NodeSet,
67-
}
68-
6961
pub fn compile_input(sess: &Session,
7062
cstore: &CStore,
7163
input: &Input,
@@ -864,11 +856,9 @@ pub fn phase_3_run_analysis_passes<'tcx, F, R>(sess: &'tcx Session,
864856

865857
TyCtxt::create_and_enter(sess,
866858
arenas,
867-
resolutions.trait_map,
859+
resolutions,
868860
named_region_map,
869861
hir_map,
870-
resolutions.freevars,
871-
resolutions.maybe_unused_trait_imports,
872862
region_map,
873863
lang_items,
874864
index,

src/librustc_driver/pretty.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,9 @@ pub use self::PpSourceMode::*;
1515
pub use self::PpMode::*;
1616
use self::NodesMatchingUII::*;
1717

18-
use abort_on_err;
19-
use driver::{self, Resolutions};
18+
use {abort_on_err, driver};
2019

21-
use rustc::ty::{self, TyCtxt};
20+
use rustc::ty::{self, TyCtxt, Resolutions};
2221
use rustc::cfg;
2322
use rustc::cfg::graphviz::LabelledCFG;
2423
use rustc::dep_graph::DepGraph;

src/librustc_driver/test.rs

+1-3
Original file line numberDiff line numberDiff line change
@@ -138,11 +138,9 @@ fn test_env<F>(source_string: &str,
138138
let index = stability::Index::new(&ast_map);
139139
TyCtxt::create_and_enter(&sess,
140140
&arenas,
141-
resolutions.trait_map,
141+
resolutions,
142142
named_region_map.unwrap(),
143143
ast_map,
144-
resolutions.freevars,
145-
resolutions.maybe_unused_trait_imports,
146144
region_map,
147145
lang_items,
148146
index,

0 commit comments

Comments
 (0)