@@ -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
40294028pub 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