Skip to content

Commit

Permalink
prevent multiple writes to a single entry in a DepTrackingMap
Browse files Browse the repository at this point in the history
  • Loading branch information
nikomatsakis committed Feb 3, 2017
1 parent 78f7ac5 commit 4b5613c
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 8 deletions.
4 changes: 2 additions & 2 deletions src/librustc/dep_graph/dep_tracking_map.rs
Original file line number Diff line number Diff line change
Expand Up @@ -63,8 +63,8 @@ impl<M: DepTrackingMapConfig> DepTrackingMap<M> {

pub fn insert(&mut self, k: M::Key, v: M::Value) {
self.write(&k);
let _old_value = self.map.insert(k, v);
// assert!(old_value.is_none());
let old_value = self.map.insert(k, v);
assert!(old_value.is_none());
}

pub fn contains_key(&self, k: &M::Key) -> bool {
Expand Down
14 changes: 8 additions & 6 deletions src/librustc_typeck/collect.rs
Original file line number Diff line number Diff line change
Expand Up @@ -848,9 +848,10 @@ fn convert_trait_item(ccx: &CrateCtxt, trait_item: &hir::TraitItem) {
let const_def_id = ccx.tcx.hir.local_def_id(trait_item.id);
generics_of_def_id(ccx, const_def_id);
let ty = ccx.icx(&trait_predicates).to_ty(&ty);
tcx.item_types.borrow_mut().insert(const_def_id, ty);
convert_associated_const(ccx, TraitContainer(trait_def_id),
trait_item.id, ty);
convert_associated_const(ccx,
TraitContainer(trait_def_id),
trait_item.id,
ty);
}

hir::TraitItemKind::Type(_, ref opt_ty) => {
Expand Down Expand Up @@ -884,9 +885,10 @@ fn convert_impl_item(ccx: &CrateCtxt, impl_item: &hir::ImplItem) {
let const_def_id = ccx.tcx.hir.local_def_id(impl_item.id);
generics_of_def_id(ccx, const_def_id);
let ty = ccx.icx(&impl_predicates).to_ty(&ty);
tcx.item_types.borrow_mut().insert(const_def_id, ty);
convert_associated_const(ccx, ImplContainer(impl_def_id),
impl_item.id, ty);
convert_associated_const(ccx,
ImplContainer(impl_def_id),
impl_item.id,
ty);
}

hir::ImplItemKind::Type(ref ty) => {
Expand Down

0 comments on commit 4b5613c

Please sign in to comment.