librustc: De-@mut
the item variance map in the type context
This commit is contained in:
parent
7f5e57a5a9
commit
5b98c66593
@ -321,7 +321,7 @@ struct ctxt_ {
|
||||
|
||||
// Maps from def-id of a type or region parameter to its
|
||||
// (inferred) variance.
|
||||
item_variance_map: @mut HashMap<ast::DefId, @ItemVariances>,
|
||||
item_variance_map: RefCell<HashMap<ast::DefId, @ItemVariances>>,
|
||||
|
||||
// A mapping from the def ID of an enum or struct type to the def ID
|
||||
// of the method that implements its destructor. If the type is not
|
||||
@ -975,7 +975,7 @@ pub fn mk_ctxt(s: session::Session,
|
||||
-> ctxt {
|
||||
@ctxt_ {
|
||||
named_region_map: named_region_map,
|
||||
item_variance_map: @mut HashMap::new(),
|
||||
item_variance_map: RefCell::new(HashMap::new()),
|
||||
diag: s.diagnostic(),
|
||||
interner: RefCell::new(HashMap::new()),
|
||||
next_id: @mut primitives::LAST_PRIMITIVE_ID,
|
||||
@ -4483,8 +4483,9 @@ pub fn visitor_object_ty(tcx: ctxt,
|
||||
}
|
||||
|
||||
pub fn item_variances(tcx: ctxt, item_id: ast::DefId) -> @ItemVariances {
|
||||
let mut item_variance_map = tcx.item_variance_map.borrow_mut();
|
||||
lookup_locally_or_in_crate_store(
|
||||
"item_variance_map", item_id, tcx.item_variance_map,
|
||||
"item_variance_map", item_id, item_variance_map.get(),
|
||||
|| @csearch::get_item_variances(tcx.cstore, item_id))
|
||||
}
|
||||
|
||||
|
@ -363,7 +363,10 @@ impl<'a> Visitor<()> for TermsContext<'a> {
|
||||
// "invalid item id" from "item id with no
|
||||
// parameters".
|
||||
if self.num_inferred() == inferreds_on_entry {
|
||||
let newly_added = self.tcx.item_variance_map.insert(
|
||||
let mut item_variance_map = self.tcx
|
||||
.item_variance_map
|
||||
.borrow_mut();
|
||||
let newly_added = item_variance_map.get().insert(
|
||||
ast_util::local_def(item.id),
|
||||
self.empty_variances);
|
||||
assert!(newly_added);
|
||||
@ -876,7 +879,6 @@ impl<'a> SolveContext<'a> {
|
||||
// item id).
|
||||
|
||||
let tcx = self.terms_cx.tcx;
|
||||
let item_variance_map = tcx.item_variance_map;
|
||||
let solutions = &self.solutions;
|
||||
let inferred_infos = &self.terms_cx.inferred_infos;
|
||||
let mut index = 0;
|
||||
@ -919,8 +921,9 @@ impl<'a> SolveContext<'a> {
|
||||
tcx.sess.span_err(ast_map::node_span(tcx.items, item_id), found);
|
||||
}
|
||||
|
||||
let newly_added = item_variance_map.insert(item_def_id,
|
||||
@item_variances);
|
||||
let mut item_variance_map = tcx.item_variance_map.borrow_mut();
|
||||
let newly_added = item_variance_map.get().insert(item_def_id,
|
||||
@item_variances);
|
||||
assert!(newly_added);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user