@@ -43,44 +43,6 @@ pub(crate) fn cfg_eval(
43
43
44
44
struct CfgEval < ' a > ( StripUnconfigured < ' a > ) ;
45
45
46
- fn flat_map_annotatable ( vis : & mut impl MutVisitor , annotatable : Annotatable ) -> Annotatable {
47
- match annotatable {
48
- Annotatable :: Item ( item) => Annotatable :: Item ( vis. flat_map_item ( item) . pop ( ) . unwrap ( ) ) ,
49
- Annotatable :: AssocItem ( item, ctxt) => {
50
- Annotatable :: AssocItem ( vis. flat_map_assoc_item ( item, ctxt) . pop ( ) . unwrap ( ) , ctxt)
51
- }
52
- Annotatable :: ForeignItem ( item) => {
53
- Annotatable :: ForeignItem ( vis. flat_map_foreign_item ( item) . pop ( ) . unwrap ( ) )
54
- }
55
- Annotatable :: Stmt ( stmt) => {
56
- Annotatable :: Stmt ( P ( vis. flat_map_stmt ( stmt. into_inner ( ) ) . pop ( ) . unwrap ( ) ) )
57
- }
58
- Annotatable :: Expr ( mut expr) => {
59
- vis. visit_expr ( & mut expr) ;
60
- Annotatable :: Expr ( expr)
61
- }
62
- Annotatable :: Arm ( arm) => Annotatable :: Arm ( vis. flat_map_arm ( arm) . pop ( ) . unwrap ( ) ) ,
63
- Annotatable :: ExprField ( field) => {
64
- Annotatable :: ExprField ( vis. flat_map_expr_field ( field) . pop ( ) . unwrap ( ) )
65
- }
66
- Annotatable :: PatField ( fp) => {
67
- Annotatable :: PatField ( vis. flat_map_pat_field ( fp) . pop ( ) . unwrap ( ) )
68
- }
69
- Annotatable :: GenericParam ( param) => {
70
- Annotatable :: GenericParam ( vis. flat_map_generic_param ( param) . pop ( ) . unwrap ( ) )
71
- }
72
- Annotatable :: Param ( param) => Annotatable :: Param ( vis. flat_map_param ( param) . pop ( ) . unwrap ( ) ) ,
73
- Annotatable :: FieldDef ( sf) => {
74
- Annotatable :: FieldDef ( vis. flat_map_field_def ( sf) . pop ( ) . unwrap ( ) )
75
- }
76
- Annotatable :: Variant ( v) => Annotatable :: Variant ( vis. flat_map_variant ( v) . pop ( ) . unwrap ( ) ) ,
77
- Annotatable :: Crate ( mut krate) => {
78
- vis. visit_crate ( & mut krate) ;
79
- Annotatable :: Crate ( krate)
80
- }
81
- }
82
- }
83
-
84
46
fn has_cfg_or_cfg_attr ( annotatable : & Annotatable ) -> bool {
85
47
struct CfgFinder ;
86
48
@@ -201,7 +163,23 @@ impl CfgEval<'_> {
201
163
202
164
// Now that we have our re-parsed `AttrTokenStream`, recursively configuring
203
165
// our attribute target will correctly configure the tokens as well.
204
- flat_map_annotatable ( & mut self , annotatable)
166
+ match annotatable {
167
+ Annotatable :: Item ( item) => Annotatable :: Item ( self . flat_map_item ( item) . pop ( ) . unwrap ( ) ) ,
168
+ Annotatable :: AssocItem ( item, ctxt) => {
169
+ Annotatable :: AssocItem ( self . flat_map_assoc_item ( item, ctxt) . pop ( ) . unwrap ( ) , ctxt)
170
+ }
171
+ Annotatable :: ForeignItem ( item) => {
172
+ Annotatable :: ForeignItem ( self . flat_map_foreign_item ( item) . pop ( ) . unwrap ( ) )
173
+ }
174
+ Annotatable :: Stmt ( stmt) => {
175
+ Annotatable :: Stmt ( P ( self . flat_map_stmt ( stmt. into_inner ( ) ) . pop ( ) . unwrap ( ) ) )
176
+ }
177
+ Annotatable :: Expr ( mut expr) => {
178
+ self . visit_expr ( & mut expr) ;
179
+ Annotatable :: Expr ( expr)
180
+ }
181
+ _ => unreachable ! ( ) ,
182
+ }
205
183
}
206
184
}
207
185
0 commit comments