summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2013-12-18 16:02:20 -0800
committerPatrick Walton <pcwalton@mimiga.net>2013-12-26 13:01:22 -0800
commit3f444dca5b8d32b8fd64256ec7ffc55b480d84ea (patch)
tree3fa806b9c21d562f91923cff4253123dd8b8d39a /src
parentefdbd60a87d8a997df39907cf11ecfa5a8ba707e (diff)
downloadrust-3f444dca5b8d32b8fd64256ec7ffc55b480d84ea.tar.gz
rust-3f444dca5b8d32b8fd64256ec7ffc55b480d84ea.zip
librustc: De-`@mut` `trait_refs`
Diffstat (limited to 'src')
-rw-r--r--src/librustc/middle/ty.rs7
-rw-r--r--src/librustc/middle/typeck/collect.rs5
2 files changed, 7 insertions, 5 deletions
diff --git a/src/librustc/middle/ty.rs b/src/librustc/middle/ty.rs
index 0dd03b1237b..c0a66ee81fd 100644
--- a/src/librustc/middle/ty.rs
+++ b/src/librustc/middle/ty.rs
@@ -297,7 +297,7 @@ struct ctxt_ {
 
     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>,
 
     /// 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,
         node_types: @mut 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(),
         items: amap,
         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 {
-    match cx.trait_refs.find(&id) {
+    let trait_refs = cx.trait_refs.borrow();
+    match trait_refs.get().find(&id) {
        Some(&t) => t,
        None => cx.sess.bug(
            format!("node_id_to_trait_ref: no trait ref for node `{}`",
diff --git a/src/librustc/middle/typeck/collect.rs b/src/librustc/middle/typeck/collect.rs
index 99f25d8e045..2391742ea9a 100644
--- a/src/librustc/middle/typeck/collect.rs
+++ b/src/librustc/middle/typeck/collect.rs
@@ -710,8 +710,9 @@ pub fn instantiate_trait_ref(ccx: &CrateCtxt,
             let trait_ref =
                 astconv::ast_path_to_trait_ref(
                     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;
         }
         _ => {