1
Fork 0

librustc: De-@mut trait_refs

This commit is contained in:
Patrick Walton 2013-12-18 16:02:20 -08:00
parent efdbd60a87
commit 3f444dca5b
2 changed files with 7 additions and 5 deletions

View file

@ -297,7 +297,7 @@ struct ctxt_ {
impl_trait_cache: RefCell<HashMap<ast::DefId, Option<@ty::TraitRef>>>, impl_trait_cache: RefCell<HashMap<ast::DefId, Option<@ty::TraitRef>>>,
trait_refs: @mut HashMap<NodeId, @TraitRef>, trait_refs: RefCell<HashMap<NodeId, @TraitRef>>,
trait_defs: @mut HashMap<DefId, @TraitDef>, trait_defs: @mut HashMap<DefId, @TraitDef>,
/// Despite its name, `items` does not only map NodeId to an item but /// Despite its name, `items` does not only map NodeId to an item but
@ -986,7 +986,7 @@ pub fn mk_ctxt(s: session::Session,
region_maps: region_maps, region_maps: region_maps,
node_types: @mut HashMap::new(), node_types: @mut HashMap::new(),
node_type_substs: RefCell::new(HashMap::new()), node_type_substs: RefCell::new(HashMap::new()),
trait_refs: @mut HashMap::new(), trait_refs: RefCell::new(HashMap::new()),
trait_defs: @mut HashMap::new(), trait_defs: @mut HashMap::new(),
items: amap, items: amap,
intrinsic_defs: @mut HashMap::new(), intrinsic_defs: @mut HashMap::new(),
@ -2654,7 +2654,8 @@ pub fn index_sty(sty: &sty) -> Option<mt> {
} }
pub fn node_id_to_trait_ref(cx: ctxt, id: ast::NodeId) -> @ty::TraitRef { pub fn node_id_to_trait_ref(cx: ctxt, id: ast::NodeId) -> @ty::TraitRef {
match cx.trait_refs.find(&id) { let trait_refs = cx.trait_refs.borrow();
match trait_refs.get().find(&id) {
Some(&t) => t, Some(&t) => t,
None => cx.sess.bug( None => cx.sess.bug(
format!("node_id_to_trait_ref: no trait ref for node `{}`", format!("node_id_to_trait_ref: no trait ref for node `{}`",

View file

@ -710,8 +710,9 @@ pub fn instantiate_trait_ref(ccx: &CrateCtxt,
let trait_ref = let trait_ref =
astconv::ast_path_to_trait_ref( astconv::ast_path_to_trait_ref(
ccx, &rscope, trait_did, Some(self_ty), &ast_trait_ref.path); ccx, &rscope, trait_did, Some(self_ty), &ast_trait_ref.path);
ccx.tcx.trait_refs.insert(
ast_trait_ref.ref_id, trait_ref); let mut trait_refs = ccx.tcx.trait_refs.borrow_mut();
trait_refs.get().insert(ast_trait_ref.ref_id, trait_ref);
return trait_ref; return trait_ref;
} }
_ => { _ => {