@@ -1151,8 +1151,8 @@ pub struct Resolver<'a, 'tcx:'a> {
1151
1151
primitive_type_table : PrimitiveTypeTable ,
1152
1152
1153
1153
def_map : DefMap ,
1154
- freevars : RefCell < FreevarMap > ,
1155
- freevars_seen : RefCell < NodeMap < NodeMap < usize > > > ,
1154
+ freevars : FreevarMap ,
1155
+ freevars_seen : NodeMap < NodeMap < usize > > ,
1156
1156
export_map : ExportMap ,
1157
1157
trait_map : TraitMap ,
1158
1158
external_exports : ExternalExports ,
@@ -1227,8 +1227,8 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
1227
1227
primitive_type_table : PrimitiveTypeTable :: new ( ) ,
1228
1228
1229
1229
def_map : RefCell :: new ( NodeMap ( ) ) ,
1230
- freevars : RefCell :: new ( NodeMap ( ) ) ,
1231
- freevars_seen : RefCell :: new ( NodeMap ( ) ) ,
1230
+ freevars : NodeMap ( ) ,
1231
+ freevars_seen : NodeMap ( ) ,
1232
1232
export_map : NodeMap ( ) ,
1233
1233
trait_map : NodeMap ( ) ,
1234
1234
used_imports : HashSet :: new ( ) ,
@@ -3081,7 +3081,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
3081
3081
}
3082
3082
3083
3083
// 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 > {
3085
3085
let ribs = match local_def. ribs {
3086
3086
Some ( ( TypeNS , i) ) => & self . type_ribs [ i+1 ..] ,
3087
3087
Some ( ( ValueNS , i) ) => & self . value_ribs [ i+1 ..] ,
@@ -3103,15 +3103,14 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
3103
3103
let prev_def = def;
3104
3104
let node_def_id = self . ast_map . local_def_id ( node_id) ;
3105
3105
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 ( ) ) ;
3108
3108
if let Some ( & index) = seen. get ( & node_id) {
3109
3109
def = DefUpvar ( node_def_id, node_id, index, function_id) ;
3110
3110
continue ;
3111
3111
}
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 ! [ ] ) ;
3115
3114
let depth = vec. len ( ) ;
3116
3115
vec. push ( Freevar { def : prev_def, span : span } ) ;
3117
3116
@@ -4028,7 +4027,7 @@ fn module_to_string(module: &Module) -> String {
4028
4027
4029
4028
pub struct CrateMap {
4030
4029
pub def_map : DefMap ,
4031
- pub freevars : RefCell < FreevarMap > ,
4030
+ pub freevars : FreevarMap ,
4032
4031
pub export_map : ExportMap ,
4033
4032
pub trait_map : TraitMap ,
4034
4033
pub external_exports : ExternalExports ,
0 commit comments