@@ -2035,28 +2035,22 @@ impl<'a> Visitor<'a> for PostExpansionVisitor<'a> {
2035
2035
fn_decl : & ' a ast:: FnDecl ,
2036
2036
span : Span ,
2037
2037
_node_id : NodeId ) {
2038
- match fn_kind {
2039
- FnKind :: ItemFn ( _, header, _, _) => {
2040
- // Check for const fn and async fn declarations.
2041
- if header. asyncness . node . is_async ( ) {
2042
- gate_feature_post ! ( & self , async_await, span, "async fn is unstable" ) ;
2043
- }
2038
+ if let Some ( header) = fn_kind. header ( ) {
2039
+ // Check for const fn and async fn declarations.
2040
+ if header. asyncness . node . is_async ( ) {
2041
+ gate_feature_post ! ( & self , async_await, span, "async fn is unstable" ) ;
2042
+ }
2044
2043
2045
- if fn_decl. c_variadic {
2046
- gate_feature_post ! ( & self , c_variadic, span,
2047
- "C-varaidic functions are unstable" ) ;
2048
- }
2049
- // Stability of const fn methods are covered in
2050
- // `visit_trait_item` and `visit_impl_item` below; this is
2051
- // because default methods don't pass through this point.
2044
+ // Stability of const fn methods are covered in
2045
+ // `visit_trait_item` and `visit_impl_item` below; this is
2046
+ // because default methods don't pass through this point.
2047
+ self . check_abi ( header. abi , span) ;
2048
+ }
2052
2049
2053
- self . check_abi ( header. abi , span) ;
2054
- }
2055
- FnKind :: Method ( _, sig, _, _) => {
2056
- self . check_abi ( sig. header . abi , span) ;
2057
- }
2058
- _ => { }
2050
+ if fn_decl. c_variadic {
2051
+ gate_feature_post ! ( & self , c_variadic, span, "C-variadic functions are unstable" ) ;
2059
2052
}
2053
+
2060
2054
visit:: walk_fn ( self , fn_kind, fn_decl, span) ;
2061
2055
}
2062
2056
0 commit comments