@@ -498,6 +498,15 @@ impl<'a, 'b> InvocationCollector<'a, 'b> {
498
498
}
499
499
}
500
500
501
+ macro_rules! configure {
502
+ ( $this: ident, $node: ident) => {
503
+ match $this. cfg. configure( $node) {
504
+ Some ( node) => node,
505
+ None => return Default :: default ( ) ,
506
+ }
507
+ }
508
+ }
509
+
501
510
impl < ' a , ' b > Folder for InvocationCollector < ' a , ' b > {
502
511
fn fold_expr ( & mut self , expr : P < ast:: Expr > ) -> P < ast:: Expr > {
503
512
let mut expr = self . cfg . configure_expr ( expr) . unwrap ( ) ;
@@ -511,10 +520,7 @@ impl<'a, 'b> Folder for InvocationCollector<'a, 'b> {
511
520
}
512
521
513
522
fn fold_opt_expr ( & mut self , expr : P < ast:: Expr > ) -> Option < P < ast:: Expr > > {
514
- let mut expr = match self . cfg . configure ( expr) {
515
- Some ( expr) => expr. unwrap ( ) ,
516
- None => return None ,
517
- } ;
523
+ let mut expr = configure ! ( self , expr) . unwrap ( ) ;
518
524
expr. node = self . cfg . configure_expr_kind ( expr. node ) ;
519
525
520
526
if let ast:: ExprKind :: Mac ( mac) = expr. node {
@@ -539,10 +545,7 @@ impl<'a, 'b> Folder for InvocationCollector<'a, 'b> {
539
545
}
540
546
541
547
fn fold_stmt ( & mut self , stmt : ast:: Stmt ) -> SmallVector < ast:: Stmt > {
542
- let stmt = match self . cfg . configure_stmt ( stmt) {
543
- Some ( stmt) => stmt,
544
- None => return SmallVector :: zero ( ) ,
545
- } ;
548
+ let stmt = configure ! ( self , stmt) ;
546
549
547
550
let ( mac, style, attrs) = match stmt. node {
548
551
StmtKind :: Mac ( mac) => mac. unwrap ( ) ,
@@ -573,10 +576,7 @@ impl<'a, 'b> Folder for InvocationCollector<'a, 'b> {
573
576
}
574
577
575
578
fn fold_item ( & mut self , item : P < ast:: Item > ) -> SmallVector < P < ast:: Item > > {
576
- let item = match self . cfg . configure ( item) {
577
- Some ( item) => item,
578
- None => return SmallVector :: zero ( ) ,
579
- } ;
579
+ let item = configure ! ( self , item) ;
580
580
581
581
let ( item, attr) = self . classify_item ( item) ;
582
582
if let Some ( attr) = attr {
@@ -652,10 +652,7 @@ impl<'a, 'b> Folder for InvocationCollector<'a, 'b> {
652
652
}
653
653
654
654
fn fold_trait_item ( & mut self , item : ast:: TraitItem ) -> SmallVector < ast:: TraitItem > {
655
- let item = match self . cfg . configure ( item) {
656
- Some ( item) => item,
657
- None => return SmallVector :: zero ( ) ,
658
- } ;
655
+ let item = configure ! ( self , item) ;
659
656
660
657
let ( item, attr) = self . classify_item ( item) ;
661
658
if let Some ( attr) = attr {
@@ -673,10 +670,7 @@ impl<'a, 'b> Folder for InvocationCollector<'a, 'b> {
673
670
}
674
671
675
672
fn fold_impl_item ( & mut self , item : ast:: ImplItem ) -> SmallVector < ast:: ImplItem > {
676
- let item = match self . cfg . configure ( item) {
677
- Some ( item) => item,
678
- None => return SmallVector :: zero ( ) ,
679
- } ;
673
+ let item = configure ! ( self , item) ;
680
674
681
675
let ( item, attr) = self . classify_item ( item) ;
682
676
if let Some ( attr) = attr {
0 commit comments