@@ -408,7 +408,10 @@ impl<'tcx> ctxt<'tcx> {
408
408
-> & ' tcx ty:: TraitDef < ' tcx > {
409
409
let did = def. trait_ref . def_id ;
410
410
let interned = self . arenas . trait_defs . alloc ( def) ;
411
- self . trait_defs . borrow_mut ( ) . insert ( did, interned) ;
411
+ if let Some ( prev) = self . trait_defs . borrow_mut ( ) . insert ( did, interned) {
412
+ self . sess . bug ( & format ! ( "Tried to overwrite interned TraitDef: {:?}" ,
413
+ prev) )
414
+ }
412
415
interned
413
416
}
414
417
@@ -425,7 +428,10 @@ impl<'tcx> ctxt<'tcx> {
425
428
let def = ty:: AdtDefData :: new ( self , did, kind, variants) ;
426
429
let interned = self . arenas . adt_defs . alloc ( def) ;
427
430
// this will need a transmute when reverse-variance is removed
428
- self . adt_defs . borrow_mut ( ) . insert ( did, interned) ;
431
+ if let Some ( prev) = self . adt_defs . borrow_mut ( ) . insert ( did, interned) {
432
+ self . sess . bug ( & format ! ( "Tried to overwrite interned AdtDef: {:?}" ,
433
+ prev) )
434
+ }
429
435
interned
430
436
}
431
437
@@ -435,13 +441,20 @@ impl<'tcx> ctxt<'tcx> {
435
441
}
436
442
437
443
let interned = self . arenas . stability . alloc ( stab) ;
438
- self . stability_interner . borrow_mut ( ) . insert ( interned, interned) ;
444
+ if let Some ( prev) = self . stability_interner
445
+ . borrow_mut ( )
446
+ . insert ( interned, interned) {
447
+ self . sess . bug ( & format ! ( "Tried to overwrite interned Stability: {:?}" ,
448
+ prev) )
449
+ }
439
450
interned
440
451
}
441
452
442
453
pub fn store_free_region_map ( & self , id : NodeId , map : FreeRegionMap ) {
443
- self . free_region_maps . borrow_mut ( )
444
- . insert ( id, map) ;
454
+ if self . free_region_maps . borrow_mut ( ) . insert ( id, map) . is_some ( ) {
455
+ self . sess . bug ( & format ! ( "Tried to overwrite interned FreeRegionMap for NodeId {:?}" ,
456
+ id) )
457
+ }
445
458
}
446
459
447
460
pub fn free_region_map ( & self , id : NodeId ) -> FreeRegionMap {
0 commit comments