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