@@ -65,7 +65,7 @@ impl BoundKind {
65
65
#[ derive( Copy , Clone , Debug ) ]
66
66
pub enum FnKind < ' a > {
67
67
/// E.g., `fn foo()`, `fn foo(&self)`, or `extern "Abi" fn foo()`.
68
- Fn ( FnCtxt , & ' a Ident , & ' a FnSig , & ' a Visibility , & ' a Generics , & ' a Option < P < Block > > ) ,
68
+ Fn ( FnCtxt , & ' a Ident , & ' a Visibility , & ' a Fn ) ,
69
69
70
70
/// E.g., `|x, y| body`.
71
71
Closure ( & ' a ClosureBinder , & ' a Option < CoroutineKind > , & ' a FnDecl , & ' a Expr ) ,
@@ -74,7 +74,7 @@ pub enum FnKind<'a> {
74
74
impl < ' a > FnKind < ' a > {
75
75
pub fn header ( & self ) -> Option < & ' a FnHeader > {
76
76
match * self {
77
- FnKind :: Fn ( _, _, sig , _, _ , _ ) => Some ( & sig. header ) ,
77
+ FnKind :: Fn ( _, _, _, Fn { sig , .. } ) => Some ( & sig. header ) ,
78
78
FnKind :: Closure ( ..) => None ,
79
79
}
80
80
}
@@ -88,7 +88,7 @@ impl<'a> FnKind<'a> {
88
88
89
89
pub fn decl ( & self ) -> & ' a FnDecl {
90
90
match self {
91
- FnKind :: Fn ( _, _, sig , _, _ , _ ) => & sig. decl ,
91
+ FnKind :: Fn ( _, _, _, Fn { sig , .. } ) => & sig. decl ,
92
92
FnKind :: Closure ( _, _, decl, _) => decl,
93
93
}
94
94
}
@@ -374,8 +374,8 @@ impl WalkItemKind for ItemKind {
374
374
try_visit ! ( visitor. visit_ty( ty) ) ;
375
375
visit_opt ! ( visitor, visit_expr, expr) ;
376
376
}
377
- ItemKind :: Fn ( box Fn { defaultness : _ , generics , sig , body } ) => {
378
- let kind = FnKind :: Fn ( FnCtxt :: Free , ident, sig , vis, generics , body ) ;
377
+ ItemKind :: Fn ( func ) => {
378
+ let kind = FnKind :: Fn ( FnCtxt :: Free , ident, vis, & * func ) ;
379
379
try_visit ! ( visitor. visit_fn( kind, span, id) ) ;
380
380
}
381
381
ItemKind :: Mod ( _unsafety, mod_kind) => match mod_kind {
@@ -715,8 +715,8 @@ impl WalkItemKind for ForeignItemKind {
715
715
try_visit ! ( visitor. visit_ty( ty) ) ;
716
716
visit_opt ! ( visitor, visit_expr, expr) ;
717
717
}
718
- ForeignItemKind :: Fn ( box Fn { defaultness : _ , generics , sig , body } ) => {
719
- let kind = FnKind :: Fn ( FnCtxt :: Foreign , ident, sig , vis, generics , body ) ;
718
+ ForeignItemKind :: Fn ( func ) => {
719
+ let kind = FnKind :: Fn ( FnCtxt :: Foreign , ident, vis, & * func ) ;
720
720
try_visit ! ( visitor. visit_fn( kind, span, id) ) ;
721
721
}
722
722
ForeignItemKind :: TyAlias ( box TyAlias {
@@ -858,7 +858,12 @@ pub fn walk_fn_decl<'a, V: Visitor<'a>>(
858
858
859
859
pub fn walk_fn < ' a , V : Visitor < ' a > > ( visitor : & mut V , kind : FnKind < ' a > ) -> V :: Result {
860
860
match kind {
861
- FnKind :: Fn ( _ctxt, _ident, FnSig { header, decl, span : _ } , _vis, generics, body) => {
861
+ FnKind :: Fn (
862
+ _ctxt,
863
+ _ident,
864
+ _vis,
865
+ Fn { defaultness : _, sig : FnSig { header, decl, span : _ } , generics, body } ,
866
+ ) => {
862
867
// Identifier and visibility are visited as a part of the item.
863
868
try_visit ! ( visitor. visit_fn_header( header) ) ;
864
869
try_visit ! ( visitor. visit_generics( generics) ) ;
@@ -892,8 +897,8 @@ impl WalkItemKind for AssocItemKind {
892
897
try_visit ! ( visitor. visit_ty( ty) ) ;
893
898
visit_opt ! ( visitor, visit_expr, expr) ;
894
899
}
895
- AssocItemKind :: Fn ( box Fn { defaultness : _ , generics , sig , body } ) => {
896
- let kind = FnKind :: Fn ( FnCtxt :: Assoc ( ctxt) , ident, sig , vis, generics , body ) ;
900
+ AssocItemKind :: Fn ( func ) => {
901
+ let kind = FnKind :: Fn ( FnCtxt :: Assoc ( ctxt) , ident, vis, & * func ) ;
897
902
try_visit ! ( visitor. visit_fn( kind, span, id) ) ;
898
903
}
899
904
AssocItemKind :: Type ( box TyAlias {
0 commit comments