@@ -3,53 +3,53 @@ use rustc_data_structures::fx::FxHashSet;
33use crate :: * ;
44
55pub trait VisitTags {
6- fn visit_tags ( & self , visit : & mut dyn FnMut ( SbTag ) ) ;
6+ fn visit_tags ( & self , visit : & mut dyn FnMut ( BorTag ) ) ;
77}
88
99impl < T : VisitTags > VisitTags for Option < T > {
10- fn visit_tags ( & self , visit : & mut dyn FnMut ( SbTag ) ) {
10+ fn visit_tags ( & self , visit : & mut dyn FnMut ( BorTag ) ) {
1111 if let Some ( x) = self {
1212 x. visit_tags ( visit) ;
1313 }
1414 }
1515}
1616
1717impl < T : VisitTags > VisitTags for std:: cell:: RefCell < T > {
18- fn visit_tags ( & self , visit : & mut dyn FnMut ( SbTag ) ) {
18+ fn visit_tags ( & self , visit : & mut dyn FnMut ( BorTag ) ) {
1919 self . borrow ( ) . visit_tags ( visit)
2020 }
2121}
2222
23- impl VisitTags for SbTag {
24- fn visit_tags ( & self , visit : & mut dyn FnMut ( SbTag ) ) {
23+ impl VisitTags for BorTag {
24+ fn visit_tags ( & self , visit : & mut dyn FnMut ( BorTag ) ) {
2525 visit ( * self )
2626 }
2727}
2828
2929impl VisitTags for Provenance {
30- fn visit_tags ( & self , visit : & mut dyn FnMut ( SbTag ) ) {
31- if let Provenance :: Concrete { sb , .. } = self {
32- visit ( * sb ) ;
30+ fn visit_tags ( & self , visit : & mut dyn FnMut ( BorTag ) ) {
31+ if let Provenance :: Concrete { tag , .. } = self {
32+ visit ( * tag ) ;
3333 }
3434 }
3535}
3636
3737impl VisitTags for Pointer < Provenance > {
38- fn visit_tags ( & self , visit : & mut dyn FnMut ( SbTag ) ) {
38+ fn visit_tags ( & self , visit : & mut dyn FnMut ( BorTag ) ) {
3939 let ( prov, _offset) = self . into_parts ( ) ;
4040 prov. visit_tags ( visit) ;
4141 }
4242}
4343
4444impl VisitTags for Pointer < Option < Provenance > > {
45- fn visit_tags ( & self , visit : & mut dyn FnMut ( SbTag ) ) {
45+ fn visit_tags ( & self , visit : & mut dyn FnMut ( BorTag ) ) {
4646 let ( prov, _offset) = self . into_parts ( ) ;
4747 prov. visit_tags ( visit) ;
4848 }
4949}
5050
5151impl VisitTags for Scalar < Provenance > {
52- fn visit_tags ( & self , visit : & mut dyn FnMut ( SbTag ) ) {
52+ fn visit_tags ( & self , visit : & mut dyn FnMut ( BorTag ) ) {
5353 match self {
5454 Scalar :: Ptr ( ptr, _) => ptr. visit_tags ( visit) ,
5555 Scalar :: Int ( _) => ( ) ,
@@ -58,7 +58,7 @@ impl VisitTags for Scalar<Provenance> {
5858}
5959
6060impl VisitTags for Immediate < Provenance > {
61- fn visit_tags ( & self , visit : & mut dyn FnMut ( SbTag ) ) {
61+ fn visit_tags ( & self , visit : & mut dyn FnMut ( BorTag ) ) {
6262 match self {
6363 Immediate :: Scalar ( s) => {
6464 s. visit_tags ( visit) ;
@@ -73,7 +73,7 @@ impl VisitTags for Immediate<Provenance> {
7373}
7474
7575impl VisitTags for MemPlaceMeta < Provenance > {
76- fn visit_tags ( & self , visit : & mut dyn FnMut ( SbTag ) ) {
76+ fn visit_tags ( & self , visit : & mut dyn FnMut ( BorTag ) ) {
7777 match self {
7878 MemPlaceMeta :: Meta ( m) => m. visit_tags ( visit) ,
7979 MemPlaceMeta :: None => { }
@@ -82,21 +82,21 @@ impl VisitTags for MemPlaceMeta<Provenance> {
8282}
8383
8484impl VisitTags for MemPlace < Provenance > {
85- fn visit_tags ( & self , visit : & mut dyn FnMut ( SbTag ) ) {
85+ fn visit_tags ( & self , visit : & mut dyn FnMut ( BorTag ) ) {
8686 let MemPlace { ptr, meta } = self ;
8787 ptr. visit_tags ( visit) ;
8888 meta. visit_tags ( visit) ;
8989 }
9090}
9191
9292impl VisitTags for MPlaceTy < ' _ , Provenance > {
93- fn visit_tags ( & self , visit : & mut dyn FnMut ( SbTag ) ) {
93+ fn visit_tags ( & self , visit : & mut dyn FnMut ( BorTag ) ) {
9494 ( * * self ) . visit_tags ( visit)
9595 }
9696}
9797
9898impl VisitTags for Place < Provenance > {
99- fn visit_tags ( & self , visit : & mut dyn FnMut ( SbTag ) ) {
99+ fn visit_tags ( & self , visit : & mut dyn FnMut ( BorTag ) ) {
100100 match self {
101101 Place :: Ptr ( p) => p. visit_tags ( visit) ,
102102 Place :: Local { .. } => {
@@ -107,13 +107,13 @@ impl VisitTags for Place<Provenance> {
107107}
108108
109109impl VisitTags for PlaceTy < ' _ , Provenance > {
110- fn visit_tags ( & self , visit : & mut dyn FnMut ( SbTag ) ) {
110+ fn visit_tags ( & self , visit : & mut dyn FnMut ( BorTag ) ) {
111111 ( * * self ) . visit_tags ( visit)
112112 }
113113}
114114
115115impl VisitTags for Operand < Provenance > {
116- fn visit_tags ( & self , visit : & mut dyn FnMut ( SbTag ) ) {
116+ fn visit_tags ( & self , visit : & mut dyn FnMut ( BorTag ) ) {
117117 match self {
118118 Operand :: Immediate ( imm) => {
119119 imm. visit_tags ( visit) ;
@@ -126,7 +126,7 @@ impl VisitTags for Operand<Provenance> {
126126}
127127
128128impl VisitTags for Allocation < Provenance , AllocExtra > {
129- fn visit_tags ( & self , visit : & mut dyn FnMut ( SbTag ) ) {
129+ fn visit_tags ( & self , visit : & mut dyn FnMut ( BorTag ) ) {
130130 for prov in self . provenance ( ) . provenances ( ) {
131131 prov. visit_tags ( visit) ;
132132 }
@@ -136,7 +136,7 @@ impl VisitTags for Allocation<Provenance, AllocExtra> {
136136}
137137
138138impl VisitTags for crate :: MiriInterpCx < ' _ , ' _ > {
139- fn visit_tags ( & self , visit : & mut dyn FnMut ( SbTag ) ) {
139+ fn visit_tags ( & self , visit : & mut dyn FnMut ( BorTag ) ) {
140140 // Memory.
141141 self . memory . alloc_map ( ) . iter ( |it| {
142142 for ( _id, ( _kind, alloc) ) in it {
@@ -154,7 +154,7 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: MiriInterpCxExt<'mir, 'tcx> {
154154 fn garbage_collect_tags ( & mut self ) -> InterpResult < ' tcx > {
155155 let this = self . eval_context_mut ( ) ;
156156 // No reason to do anything at all if stacked borrows is off.
157- if this. machine . stacked_borrows . is_none ( ) {
157+ if ! this. machine . borrow_tracker_method . is_active ( ) {
158158 return Ok ( ( ) ) ;
159159 }
160160
@@ -167,16 +167,15 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: MiriInterpCxExt<'mir, 'tcx> {
167167 Ok ( ( ) )
168168 }
169169
170- fn remove_unreachable_tags ( & mut self , tags : FxHashSet < SbTag > ) {
170+ fn remove_unreachable_tags ( & mut self , tags : FxHashSet < BorTag > ) {
171171 let this = self . eval_context_mut ( ) ;
172172 this. memory . alloc_map ( ) . iter ( |it| {
173173 for ( _id, ( _kind, alloc) ) in it {
174174 alloc
175175 . extra
176- . stacked_borrows
176+ . borrow_tracker
177177 . as_ref ( )
178178 . unwrap ( )
179- . borrow_mut ( )
180179 . remove_unreachable_tags ( & tags) ;
181180 }
182181 } ) ;
0 commit comments