about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEduard Burtescu <edy.burt@gmail.com>2014-03-13 22:16:27 +0200
committerEduard Burtescu <edy.burt@gmail.com>2014-03-17 09:53:07 +0200
commitda842c6278d3e8ec068d4cc2b4c93c2e292f8e4b (patch)
tree1e488a1e64aa7d4f975120483f3cec7fd898c727
parent90cbe0cad20d2736c7e7ebbffb2c2d84016f9340 (diff)
downloadrust-da842c6278d3e8ec068d4cc2b4c93c2e292f8e4b.tar.gz
rust-da842c6278d3e8ec068d4cc2b4c93c2e292f8e4b.zip
De-@ resolve_lifetime.
-rw-r--r--src/librustc/middle/resolve_lifetime.rs16
-rw-r--r--src/librustc/middle/ty.rs4
-rw-r--r--src/librustc/middle/typeck/astconv.rs3
3 files changed, 10 insertions, 13 deletions
diff --git a/src/librustc/middle/resolve_lifetime.rs b/src/librustc/middle/resolve_lifetime.rs
index 9790b392d0f..da424ea2e15 100644
--- a/src/librustc/middle/resolve_lifetime.rs
+++ b/src/librustc/middle/resolve_lifetime.rs
@@ -18,7 +18,6 @@
  */
 
 use driver::session::Session;
-use std::cell::RefCell;
 use std::vec_ng::Vec;
 use util::nodemap::NodeMap;
 use syntax::ast;
@@ -42,7 +41,7 @@ fn lifetime_show(lt_name: &ast::Name) -> token::InternedString {
 
 struct LifetimeContext<'a> {
     sess: &'a Session,
-    named_region_map: @RefCell<NamedRegionMap>,
+    named_region_map: NamedRegionMap,
 }
 
 enum ScopeChain<'a> {
@@ -60,10 +59,10 @@ enum ScopeChain<'a> {
 
 type Scope<'a> = &'a ScopeChain<'a>;
 
-pub fn krate(sess: &Session, krate: &ast::Crate) -> @RefCell<NamedRegionMap> {
+pub fn krate(sess: &Session, krate: &ast::Crate) -> NamedRegionMap {
     let mut ctxt = LifetimeContext {
         sess: sess,
-        named_region_map: @RefCell::new(NodeMap::new())
+        named_region_map: NodeMap::new()
     };
     visit::walk_crate(&mut ctxt, krate, &RootScope);
     sess.abort_if_errors();
@@ -236,7 +235,7 @@ impl<'a> LifetimeContext<'a> {
         debug!("popping fn scope id={} due to fn item/method", n);
     }
 
-    fn resolve_lifetime_ref(&self,
+    fn resolve_lifetime_ref(&mut self,
                             lifetime_ref: &ast::Lifetime,
                             scope: Scope) {
         // Walk up the scope chain, tracking the number of fn scopes
@@ -292,7 +291,7 @@ impl<'a> LifetimeContext<'a> {
         self.unresolved_lifetime_ref(lifetime_ref);
     }
 
-    fn resolve_free_lifetime_ref(&self,
+    fn resolve_free_lifetime_ref(&mut self,
                                  scope_id: ast::NodeId,
                                  lifetime_ref: &ast::Lifetime,
                                  scope: Scope) {
@@ -373,7 +372,7 @@ impl<'a> LifetimeContext<'a> {
         }
     }
 
-    fn insert_lifetime(&self,
+    fn insert_lifetime(&mut self,
                        lifetime_ref: &ast::Lifetime,
                        def: ast::DefRegion) {
         if lifetime_ref.id == ast::DUMMY_NODE_ID {
@@ -386,8 +385,7 @@ impl<'a> LifetimeContext<'a> {
                 lifetime_to_str(lifetime_ref),
                 lifetime_ref.id,
                 def);
-        let mut named_region_map = self.named_region_map.borrow_mut();
-        named_region_map.get().insert(lifetime_ref.id, def);
+        self.named_region_map.insert(lifetime_ref.id, def);
     }
 }
 
diff --git a/src/librustc/middle/ty.rs b/src/librustc/middle/ty.rs
index aa92cf30498..be74602c2f5 100644
--- a/src/librustc/middle/ty.rs
+++ b/src/librustc/middle/ty.rs
@@ -261,7 +261,7 @@ pub struct ctxt {
     sess: Session,
     def_map: resolve::DefMap,
 
-    named_region_map: @RefCell<resolve_lifetime::NamedRegionMap>,
+    named_region_map: resolve_lifetime::NamedRegionMap,
 
     region_maps: middle::region::RegionMaps,
 
@@ -1079,7 +1079,7 @@ pub type node_type_table = RefCell<HashMap<uint,t>>;
 
 pub fn mk_ctxt(s: Session,
                dm: resolve::DefMap,
-               named_region_map: @RefCell<resolve_lifetime::NamedRegionMap>,
+               named_region_map: resolve_lifetime::NamedRegionMap,
                map: ast_map::Map,
                freevars: freevars::freevar_map,
                region_maps: middle::region::RegionMaps,
diff --git a/src/librustc/middle/typeck/astconv.rs b/src/librustc/middle/typeck/astconv.rs
index 557b6fce228..658538bcec8 100644
--- a/src/librustc/middle/typeck/astconv.rs
+++ b/src/librustc/middle/typeck/astconv.rs
@@ -79,8 +79,7 @@ pub trait AstConv {
 
 pub fn ast_region_to_region(tcx: &ty::ctxt, lifetime: &ast::Lifetime)
                             -> ty::Region {
-    let named_region_map = tcx.named_region_map.borrow();
-    let r = match named_region_map.get().find(&lifetime.id) {
+    let r = match tcx.named_region_map.find(&lifetime.id) {
         None => {
             // should have been recorded by the `resolve_lifetime` pass
             tcx.sess.span_bug(lifetime.span, "unresolved lifetime");