diff options
| author | Eduard Burtescu <edy.burt@gmail.com> | 2014-03-13 22:16:27 +0200 |
|---|---|---|
| committer | Eduard Burtescu <edy.burt@gmail.com> | 2014-03-17 09:53:07 +0200 |
| commit | da842c6278d3e8ec068d4cc2b4c93c2e292f8e4b (patch) | |
| tree | 1e488a1e64aa7d4f975120483f3cec7fd898c727 | |
| parent | 90cbe0cad20d2736c7e7ebbffb2c2d84016f9340 (diff) | |
| download | rust-da842c6278d3e8ec068d4cc2b4c93c2e292f8e4b.tar.gz rust-da842c6278d3e8ec068d4cc2b4c93c2e292f8e4b.zip | |
De-@ resolve_lifetime.
| -rw-r--r-- | src/librustc/middle/resolve_lifetime.rs | 16 | ||||
| -rw-r--r-- | src/librustc/middle/ty.rs | 4 | ||||
| -rw-r--r-- | src/librustc/middle/typeck/astconv.rs | 3 |
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"); |
