@@ -51,7 +51,7 @@ use rustc::ty::TyCtxt;
51
51
use rustc_data_structures:: fx:: FxHashSet ;
52
52
use rustc_data_structures:: graph:: { Direction , INCOMING , OUTGOING , NodeIndex } ;
53
53
use rustc:: hir;
54
- use rustc:: hir:: itemlikevisit :: ItemLikeVisitor ;
54
+ use rustc:: hir:: intravisit :: { self , NestedVisitorMap , Visitor } ;
55
55
use rustc:: ich:: { ATTR_IF_THIS_CHANGED , ATTR_THEN_THIS_WOULD_NEED } ;
56
56
use graphviz:: IntoCow ;
57
57
use std:: env;
@@ -80,7 +80,7 @@ pub fn assert_dep_graph<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>) {
80
80
if_this_changed : vec ! [ ] ,
81
81
then_this_would_need : vec ! [ ] } ;
82
82
visitor. process_attrs ( ast:: CRATE_NODE_ID , & tcx. hir . krate ( ) . attrs ) ;
83
- tcx. hir . krate ( ) . visit_all_item_likes ( & mut visitor) ;
83
+ tcx. hir . krate ( ) . visit_all_item_likes ( & mut visitor. as_deep_visitor ( ) ) ;
84
84
( visitor. if_this_changed , visitor. then_this_would_need )
85
85
} ;
86
86
@@ -166,17 +166,29 @@ impl<'a, 'tcx> IfThisChanged<'a, 'tcx> {
166
166
}
167
167
}
168
168
169
- impl < ' a , ' tcx > ItemLikeVisitor < ' tcx > for IfThisChanged < ' a , ' tcx > {
169
+ impl < ' a , ' tcx > Visitor < ' tcx > for IfThisChanged < ' a , ' tcx > {
170
+ fn nested_visit_map < ' this > ( & ' this mut self ) -> NestedVisitorMap < ' this , ' tcx > {
171
+ NestedVisitorMap :: OnlyBodies ( & self . tcx . hir )
172
+ }
173
+
170
174
fn visit_item ( & mut self , item : & ' tcx hir:: Item ) {
171
175
self . process_attrs ( item. id , & item. attrs ) ;
176
+ intravisit:: walk_item ( self , item) ;
172
177
}
173
178
174
179
fn visit_trait_item ( & mut self , trait_item : & ' tcx hir:: TraitItem ) {
175
180
self . process_attrs ( trait_item. id , & trait_item. attrs ) ;
181
+ intravisit:: walk_trait_item ( self , trait_item) ;
176
182
}
177
183
178
184
fn visit_impl_item ( & mut self , impl_item : & ' tcx hir:: ImplItem ) {
179
185
self . process_attrs ( impl_item. id , & impl_item. attrs ) ;
186
+ intravisit:: walk_impl_item ( self , impl_item) ;
187
+ }
188
+
189
+ fn visit_struct_field ( & mut self , s : & ' tcx hir:: StructField ) {
190
+ self . process_attrs ( s. id , & s. attrs ) ;
191
+ intravisit:: walk_struct_field ( self , s) ;
180
192
}
181
193
}
182
194
0 commit comments