@@ -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 }
@@ -286,8 +286,8 @@ pub fn walk_item<'a, V: Visitor<'a>>(visitor: &mut V, item: &'a Item) {
286286 walk_list ! ( visitor, visit_expr, expr) ;
287287 }
288288 ItemKind :: Fn ( box Fn { defaultness : _, ref generics, ref sig, ref body } ) => {
289- visitor . visit_generics ( generics ) ;
290- let kind = FnKind :: Fn ( FnCtxt :: Free , item. ident , sig, & item. vis , body. as_deref ( ) ) ;
289+ let kind =
290+ FnKind :: Fn ( FnCtxt :: Free , item. ident , sig, & item. vis , generics , body. as_deref ( ) ) ;
291291 visitor. visit_fn ( kind, item. span , item. id )
292292 }
293293 ItemKind :: Mod ( _unsafety, ref mod_kind) => match mod_kind {
@@ -554,8 +554,7 @@ pub fn walk_foreign_item<'a, V: Visitor<'a>>(visitor: &mut V, item: &'a ForeignI
554554 walk_list ! ( visitor, visit_expr, expr) ;
555555 }
556556 ForeignItemKind :: Fn ( box Fn { defaultness : _, ref generics, ref sig, ref body } ) => {
557- visitor. visit_generics ( generics) ;
558- let kind = FnKind :: Fn ( FnCtxt :: Foreign , ident, sig, vis, body. as_deref ( ) ) ;
557+ let kind = FnKind :: Fn ( FnCtxt :: Foreign , ident, sig, vis, generics, body. as_deref ( ) ) ;
559558 visitor. visit_fn ( kind, span, id) ;
560559 }
561560 ForeignItemKind :: TyAlias ( box TyAlias { defaultness : _, generics, bounds, ty } ) => {
@@ -637,7 +636,8 @@ pub fn walk_fn_decl<'a, V: Visitor<'a>>(visitor: &mut V, function_declaration: &
637636
638637pub fn walk_fn < ' a , V : Visitor < ' a > > ( visitor : & mut V , kind : FnKind < ' a > , _span : Span ) {
639638 match kind {
640- FnKind :: Fn ( _, _, sig, _, body) => {
639+ FnKind :: Fn ( _, _, sig, _, generics, body) => {
640+ visitor. visit_generics ( generics) ;
641641 visitor. visit_fn_header ( & sig. header ) ;
642642 walk_fn_decl ( visitor, & sig. decl ) ;
643643 walk_list ! ( visitor, visit_block, body) ;
@@ -660,8 +660,7 @@ pub fn walk_assoc_item<'a, V: Visitor<'a>>(visitor: &mut V, item: &'a AssocItem,
660660 walk_list ! ( visitor, visit_expr, expr) ;
661661 }
662662 AssocItemKind :: Fn ( box Fn { defaultness : _, ref generics, ref sig, ref body } ) => {
663- visitor. visit_generics ( generics) ;
664- let kind = FnKind :: Fn ( FnCtxt :: Assoc ( ctxt) , ident, sig, vis, body. as_deref ( ) ) ;
663+ let kind = FnKind :: Fn ( FnCtxt :: Assoc ( ctxt) , ident, sig, vis, generics, body. as_deref ( ) ) ;
665664 visitor. visit_fn ( kind, span, id) ;
666665 }
667666 AssocItemKind :: TyAlias ( box TyAlias { defaultness : _, generics, bounds, ty } ) => {
0 commit comments