@@ -35,7 +35,7 @@ pub enum FnCtxt {
3535#[ derive( Copy , Clone , Debug ) ]
3636pub enum FnKind < ' a > {
3737 /// E.g., `fn foo()`, `fn foo(&self)`, or `extern "Abi" fn foo()`.
38- Fn ( FnCtxt , Ident , & ' a FnSig , & ' a Visibility , Option < & ' a Block > ) ,
38+ Fn ( FnCtxt , Ident , & ' a FnSig , & ' a Visibility , & ' a Generics , Option < & ' a Block > ) ,
3939
4040 /// E.g., `|x, y| body`.
4141 Closure ( & ' a FnDecl , & ' a Expr ) ,
@@ -44,7 +44,7 @@ pub enum FnKind<'a> {
4444impl < ' a > FnKind < ' a > {
4545 pub fn header ( & self ) -> Option < & ' a FnHeader > {
4646 match * self {
47- FnKind :: Fn ( _, _, sig, _, _) => Some ( & sig. header ) ,
47+ FnKind :: Fn ( _, _, sig, _, _, _ ) => Some ( & sig. header ) ,
4848 FnKind :: Closure ( _, _) => None ,
4949 }
5050 }
@@ -58,7 +58,7 @@ impl<'a> FnKind<'a> {
5858
5959 pub fn decl ( & self ) -> & ' a FnDecl {
6060 match self {
61- FnKind :: Fn ( _, _, sig, _, _) => & sig. decl ,
61+ FnKind :: Fn ( _, _, sig, _, _, _ ) => & sig. decl ,
6262 FnKind :: Closure ( decl, _) => decl,
6363 }
6464 }
@@ -295,8 +295,8 @@ pub fn walk_item<'a, V: Visitor<'a>>(visitor: &mut V, item: &'a Item) {
295295 walk_list ! ( visitor, visit_expr, expr) ;
296296 }
297297 ItemKind :: Fn ( box Fn { defaultness : _, ref generics, ref sig, ref body } ) => {
298- visitor . visit_generics ( generics ) ;
299- let kind = FnKind :: Fn ( FnCtxt :: Free , item. ident , sig, & item. vis , body. as_deref ( ) ) ;
298+ let kind =
299+ FnKind :: Fn ( FnCtxt :: Free , item. ident , sig, & item. vis , generics , body. as_deref ( ) ) ;
300300 visitor. visit_fn ( kind, item. span , item. id )
301301 }
302302 ItemKind :: Mod ( _unsafety, ref mod_kind) => match mod_kind {
@@ -561,8 +561,7 @@ pub fn walk_foreign_item<'a, V: Visitor<'a>>(visitor: &mut V, item: &'a ForeignI
561561 walk_list ! ( visitor, visit_expr, expr) ;
562562 }
563563 ForeignItemKind :: Fn ( box Fn { defaultness : _, ref generics, ref sig, ref body } ) => {
564- visitor. visit_generics ( generics) ;
565- let kind = FnKind :: Fn ( FnCtxt :: Foreign , ident, sig, vis, body. as_deref ( ) ) ;
564+ let kind = FnKind :: Fn ( FnCtxt :: Foreign , ident, sig, vis, generics, body. as_deref ( ) ) ;
566565 visitor. visit_fn ( kind, span, id) ;
567566 }
568567 ForeignItemKind :: TyAlias ( box TyAlias { generics, bounds, ty, .. } ) => {
@@ -644,7 +643,8 @@ pub fn walk_fn_decl<'a, V: Visitor<'a>>(visitor: &mut V, function_declaration: &
644643
645644pub fn walk_fn < ' a , V : Visitor < ' a > > ( visitor : & mut V , kind : FnKind < ' a > , _span : Span ) {
646645 match kind {
647- FnKind :: Fn ( _, _, sig, _, body) => {
646+ FnKind :: Fn ( _, _, sig, _, generics, body) => {
647+ visitor. visit_generics ( generics) ;
648648 visitor. visit_fn_header ( & sig. header ) ;
649649 walk_fn_decl ( visitor, & sig. decl ) ;
650650 walk_list ! ( visitor, visit_block, body) ;
@@ -667,8 +667,7 @@ pub fn walk_assoc_item<'a, V: Visitor<'a>>(visitor: &mut V, item: &'a AssocItem,
667667 walk_list ! ( visitor, visit_expr, expr) ;
668668 }
669669 AssocItemKind :: Fn ( box Fn { defaultness : _, ref generics, ref sig, ref body } ) => {
670- visitor. visit_generics ( generics) ;
671- let kind = FnKind :: Fn ( FnCtxt :: Assoc ( ctxt) , ident, sig, vis, body. as_deref ( ) ) ;
670+ let kind = FnKind :: Fn ( FnCtxt :: Assoc ( ctxt) , ident, sig, vis, generics, body. as_deref ( ) ) ;
672671 visitor. visit_fn ( kind, span, id) ;
673672 }
674673 AssocItemKind :: TyAlias ( box TyAlias { generics, bounds, ty, .. } ) => {
0 commit comments