@@ -1080,12 +1080,13 @@ impl<'a, 'gcx, 'tcx> TyCtxt<'a, 'gcx, 'tcx> {
1080
1080
self ,
1081
1081
alloc : interpret:: Allocation ,
1082
1082
) -> & ' gcx interpret:: Allocation {
1083
- if let Some ( alloc) = self . interpret_interner . inner . borrow ( ) . allocs . get ( & alloc) {
1083
+ let allocs = & mut self . interpret_interner . inner . borrow_mut ( ) . allocs ;
1084
+ if let Some ( alloc) = allocs. get ( & alloc) {
1084
1085
return alloc;
1085
1086
}
1086
1087
1087
1088
let interned = self . global_arenas . const_allocs . alloc ( alloc) ;
1088
- if let Some ( prev) = self . interpret_interner . inner . borrow_mut ( ) . allocs . replace ( interned) {
1089
+ if let Some ( prev) = allocs. replace ( interned) {
1089
1090
bug ! ( "Tried to overwrite interned Allocation: {:#?}" , prev)
1090
1091
}
1091
1092
interned
@@ -1112,24 +1113,26 @@ impl<'a, 'gcx, 'tcx> TyCtxt<'a, 'gcx, 'tcx> {
1112
1113
}
1113
1114
1114
1115
pub fn intern_stability ( self , stab : attr:: Stability ) -> & ' gcx attr:: Stability {
1115
- if let Some ( st) = self . stability_interner . borrow ( ) . get ( & stab) {
1116
+ let mut stability_interner = self . stability_interner . borrow_mut ( ) ;
1117
+ if let Some ( st) = stability_interner. get ( & stab) {
1116
1118
return st;
1117
1119
}
1118
1120
1119
1121
let interned = self . global_interners . arena . alloc ( stab) ;
1120
- if let Some ( prev) = self . stability_interner . borrow_mut ( ) . replace ( interned) {
1122
+ if let Some ( prev) = stability_interner. replace ( interned) {
1121
1123
bug ! ( "Tried to overwrite interned Stability: {:?}" , prev)
1122
1124
}
1123
1125
interned
1124
1126
}
1125
1127
1126
1128
pub fn intern_layout ( self , layout : LayoutDetails ) -> & ' gcx LayoutDetails {
1127
- if let Some ( layout) = self . layout_interner . borrow ( ) . get ( & layout) {
1129
+ let mut layout_interner = self . layout_interner . borrow_mut ( ) ;
1130
+ if let Some ( layout) = layout_interner. get ( & layout) {
1128
1131
return layout;
1129
1132
}
1130
1133
1131
1134
let interned = self . global_arenas . layout . alloc ( layout) ;
1132
- if let Some ( prev) = self . layout_interner . borrow_mut ( ) . replace ( interned) {
1135
+ if let Some ( prev) = layout_interner. replace ( interned) {
1133
1136
bug ! ( "Tried to overwrite interned Layout: {:?}" , prev)
1134
1137
}
1135
1138
interned
0 commit comments