librustc: De-@mut
the named region map in the type context
This commit is contained in:
parent
01e31683d8
commit
2de1e3649a
@ -18,6 +18,7 @@
|
||||
*/
|
||||
|
||||
use driver::session;
|
||||
use std::cell::RefCell;
|
||||
use std::hashmap::HashMap;
|
||||
use syntax::ast;
|
||||
use syntax::codemap::Span;
|
||||
@ -33,7 +34,7 @@ pub type NamedRegionMap = HashMap<ast::NodeId, ast::DefRegion>;
|
||||
|
||||
struct LifetimeContext {
|
||||
sess: session::Session,
|
||||
named_region_map: @mut NamedRegionMap,
|
||||
named_region_map: @RefCell<NamedRegionMap>,
|
||||
}
|
||||
|
||||
enum ScopeChain<'a> {
|
||||
@ -43,12 +44,11 @@ enum ScopeChain<'a> {
|
||||
RootScope
|
||||
}
|
||||
|
||||
pub fn crate(sess: session::Session,
|
||||
crate: &ast::Crate)
|
||||
-> @mut NamedRegionMap {
|
||||
pub fn crate(sess: session::Session, crate: &ast::Crate)
|
||||
-> @RefCell<NamedRegionMap> {
|
||||
let mut ctxt = LifetimeContext {
|
||||
sess: sess,
|
||||
named_region_map: @mut HashMap::new()
|
||||
named_region_map: @RefCell::new(HashMap::new())
|
||||
};
|
||||
visit::walk_crate(&mut ctxt, crate, &RootScope);
|
||||
sess.abort_if_errors();
|
||||
@ -305,7 +305,8 @@ impl LifetimeContext {
|
||||
self.sess.intr()),
|
||||
lifetime_ref.id,
|
||||
def);
|
||||
self.named_region_map.insert(lifetime_ref.id, def);
|
||||
let mut named_region_map = self.named_region_map.borrow_mut();
|
||||
named_region_map.get().insert(lifetime_ref.id, def);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -270,7 +270,7 @@ struct ctxt_ {
|
||||
sess: session::Session,
|
||||
def_map: resolve::DefMap,
|
||||
|
||||
named_region_map: @mut resolve_lifetime::NamedRegionMap,
|
||||
named_region_map: @RefCell<resolve_lifetime::NamedRegionMap>,
|
||||
|
||||
region_maps: @mut middle::region::RegionMaps,
|
||||
|
||||
@ -959,7 +959,7 @@ pub type node_type_table = RefCell<HashMap<uint,t>>;
|
||||
|
||||
pub fn mk_ctxt(s: session::Session,
|
||||
dm: resolve::DefMap,
|
||||
named_region_map: @mut resolve_lifetime::NamedRegionMap,
|
||||
named_region_map: @RefCell<resolve_lifetime::NamedRegionMap>,
|
||||
amap: ast_map::map,
|
||||
freevars: freevars::freevar_map,
|
||||
region_maps: @mut middle::region::RegionMaps,
|
||||
|
@ -76,12 +76,10 @@ pub trait AstConv {
|
||||
fn ty_infer(&self, span: Span) -> ty::t;
|
||||
}
|
||||
|
||||
pub fn ast_region_to_region(
|
||||
tcx: ty::ctxt,
|
||||
lifetime: &ast::Lifetime)
|
||||
-> ty::Region
|
||||
{
|
||||
let r = match tcx.named_region_map.find(&lifetime.id) {
|
||||
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) {
|
||||
None => {
|
||||
// should have been recorded by the `resolve_lifetime` pass
|
||||
tcx.sess.span_bug(lifetime.span, "unresolved lifetime");
|
||||
|
Loading…
x
Reference in New Issue
Block a user