@@ -151,17 +151,17 @@ macro_rules! make_mir_visitor {
151
151
self . super_place( place, context, location) ;
152
152
}
153
153
154
- fn visit_projection ( & mut self ,
155
- place : & $( $mutability) ? Projection <' tcx>,
154
+ fn visit_place_base ( & mut self ,
155
+ place_base : & $( $mutability) ? PlaceBase <' tcx>,
156
156
context: PlaceContext ,
157
157
location: Location ) {
158
- self . super_projection ( place , context, location) ;
158
+ self . super_place_base ( place_base , context, location) ;
159
159
}
160
160
161
- fn visit_projection_elem ( & mut self ,
162
- place: & $( $mutability) ? PlaceElem <' tcx>,
163
- location: Location ) {
164
- self . super_projection_elem ( place, location) ;
161
+ fn visit_projection ( & mut self ,
162
+ place: & $( $mutability) ? Projection <' tcx>,
163
+ location: Location ) {
164
+ self . super_projection ( place, location) ;
165
165
}
166
166
167
167
fn visit_constant( & mut self ,
@@ -676,36 +676,40 @@ macro_rules! make_mir_visitor {
676
676
context: PlaceContext ,
677
677
location: Location ) {
678
678
match place {
679
- Place :: Base ( PlaceBase :: Local ( local) ) => {
680
- self . visit_local( local, context, location) ;
681
- }
682
- Place :: Base ( PlaceBase :: Static ( box Static { kind: _, ty } ) ) => {
683
- self . visit_ty( & $( $mutability) ? * ty, TyContext :: Location ( location) ) ;
679
+ Place :: Base ( place_base) => {
680
+ self . visit_place_base( place_base, context, location) ;
684
681
}
685
682
Place :: Projection ( proj) => {
686
- self . visit_projection( proj, context, location) ;
683
+ let context = if context. is_mutating_use( ) {
684
+ PlaceContext :: MutatingUse ( MutatingUseContext :: Projection )
685
+ } else {
686
+ PlaceContext :: NonMutatingUse ( NonMutatingUseContext :: Projection )
687
+ } ;
688
+
689
+ self . visit_place( & $( $mutability) ? proj. base, context, location) ;
690
+ self . visit_projection( proj, location) ;
687
691
}
688
692
}
689
693
}
690
694
691
- fn super_projection ( & mut self ,
692
- proj : & $( $mutability) ? Projection <' tcx>,
695
+ fn super_place_base ( & mut self ,
696
+ place_base : & $( $mutability) ? PlaceBase <' tcx>,
693
697
context: PlaceContext ,
694
698
location: Location ) {
695
- let Projection { base , elem } = proj ;
696
- let context = if context . is_mutating_use ( ) {
697
- PlaceContext :: MutatingUse ( MutatingUseContext :: Projection )
698
- } else {
699
- PlaceContext :: NonMutatingUse ( NonMutatingUseContext :: Projection )
700
- } ;
701
- self . visit_place ( base , context , location ) ;
702
- self . visit_projection_elem ( elem , location ) ;
699
+ match place_base {
700
+ PlaceBase :: Local ( local ) => {
701
+ self . visit_local ( local , context , location ) ;
702
+ }
703
+ PlaceBase :: Static ( box Static { kind : _ , ty } ) => {
704
+ self . visit_ty ( & $ ( $mutability ) ? * ty , TyContext :: Location ( location ) ) ;
705
+ }
706
+ }
703
707
}
704
708
705
- fn super_projection_elem ( & mut self ,
706
- proj: & $( $mutability) ? PlaceElem <' tcx>,
707
- location: Location ) {
708
- match proj {
709
+ fn super_projection ( & mut self ,
710
+ proj: & $( $mutability) ? Projection <' tcx>,
711
+ location: Location ) {
712
+ match & $ ( $mutability ) ? proj. elem {
709
713
ProjectionElem :: Deref => {
710
714
}
711
715
ProjectionElem :: Subslice { from: _, to: _ } => {
0 commit comments