Skip to content

Commit fb2129e

Browse files
committed
Remove the RefCell around freevars and freevars_seen in librustc_resolve
1 parent c340ea1 commit fb2129e

File tree

2 files changed

+12
-13
lines changed

2 files changed

+12
-13
lines changed

src/librustc/middle/ty/context.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -448,7 +448,7 @@ impl<'tcx> ctxt<'tcx> {
448448
def_map: DefMap,
449449
named_region_map: resolve_lifetime::NamedRegionMap,
450450
map: ast_map::Map<'tcx>,
451-
freevars: RefCell<FreevarMap>,
451+
freevars: FreevarMap,
452452
region_maps: RegionMaps,
453453
lang_items: middle::lang_items::LanguageItems,
454454
stability: stability::Index<'tcx>,
@@ -481,7 +481,7 @@ impl<'tcx> ctxt<'tcx> {
481481
super_predicates: RefCell::new(DefIdMap()),
482482
fulfilled_predicates: RefCell::new(traits::FulfilledPredicates::new()),
483483
map: map,
484-
freevars: freevars,
484+
freevars: RefCell::new(freevars),
485485
tcache: RefCell::new(DefIdMap()),
486486
rcache: RefCell::new(FnvHashMap()),
487487
tc_cache: RefCell::new(FnvHashMap()),

src/librustc_resolve/lib.rs

+10-11
Original file line numberDiff line numberDiff line change
@@ -1151,8 +1151,8 @@ pub struct Resolver<'a, 'tcx:'a> {
11511151
primitive_type_table: PrimitiveTypeTable,
11521152

11531153
def_map: DefMap,
1154-
freevars: RefCell<FreevarMap>,
1155-
freevars_seen: RefCell<NodeMap<NodeMap<usize>>>,
1154+
freevars: FreevarMap,
1155+
freevars_seen: NodeMap<NodeMap<usize>>,
11561156
export_map: ExportMap,
11571157
trait_map: TraitMap,
11581158
external_exports: ExternalExports,
@@ -1227,8 +1227,8 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
12271227
primitive_type_table: PrimitiveTypeTable::new(),
12281228

12291229
def_map: RefCell::new(NodeMap()),
1230-
freevars: RefCell::new(NodeMap()),
1231-
freevars_seen: RefCell::new(NodeMap()),
1230+
freevars: NodeMap(),
1231+
freevars_seen: NodeMap(),
12321232
export_map: NodeMap(),
12331233
trait_map: NodeMap(),
12341234
used_imports: HashSet::new(),
@@ -3081,7 +3081,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
30813081
}
30823082

30833083
// Resolve a local definition, potentially adjusting for closures.
3084-
fn adjust_local_def(&self, local_def: LocalDef, span: Span) -> Option<Def> {
3084+
fn adjust_local_def(&mut self, local_def: LocalDef, span: Span) -> Option<Def> {
30853085
let ribs = match local_def.ribs {
30863086
Some((TypeNS, i)) => &self.type_ribs[i+1..],
30873087
Some((ValueNS, i)) => &self.value_ribs[i+1..],
@@ -3103,15 +3103,14 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
31033103
let prev_def = def;
31043104
let node_def_id = self.ast_map.local_def_id(node_id);
31053105

3106-
let mut seen = self.freevars_seen.borrow_mut();
3107-
let seen = seen.entry(function_id).or_insert_with(|| NodeMap());
3106+
let seen = self.freevars_seen.entry(function_id)
3107+
.or_insert_with(|| NodeMap());
31083108
if let Some(&index) = seen.get(&node_id) {
31093109
def = DefUpvar(node_def_id, node_id, index, function_id);
31103110
continue;
31113111
}
3112-
let mut freevars = self.freevars.borrow_mut();
3113-
let vec = freevars.entry(function_id)
3114-
.or_insert_with(|| vec![]);
3112+
let vec = self.freevars.entry(function_id)
3113+
.or_insert_with(|| vec![]);
31153114
let depth = vec.len();
31163115
vec.push(Freevar { def: prev_def, span: span });
31173116

@@ -4028,7 +4027,7 @@ fn module_to_string(module: &Module) -> String {
40284027

40294028
pub struct CrateMap {
40304029
pub def_map: DefMap,
4031-
pub freevars: RefCell<FreevarMap>,
4030+
pub freevars: FreevarMap,
40324031
pub export_map: ExportMap,
40334032
pub trait_map: TraitMap,
40344033
pub external_exports: ExternalExports,

0 commit comments

Comments
 (0)