@@ -333,24 +333,6 @@ impl<'a> Parser<'a> {
333
333
self . token . is_keyword ( kw:: Async ) && self . is_keyword_ahead ( 1 , & [ kw:: Fn ] )
334
334
}
335
335
336
- /// Parses a macro invocation inside a `trait`, `impl`, or `extern` block.
337
- fn parse_assoc_macro_invoc (
338
- & mut self ,
339
- item_kind : & str ,
340
- vis : & Visibility ,
341
- at_end : & mut bool ,
342
- ) -> PResult < ' a , Option < Mac > > {
343
- if self . isnt_macro_invocation ( ) {
344
- Err ( self . missing_assoc_item_kind_err ( item_kind, self . prev_span ) )
345
- } else if self . token . is_path_start ( ) {
346
- let mac = self . parse_item_macro ( vis) ?;
347
- * at_end = true ;
348
- Ok ( Some ( mac) )
349
- } else {
350
- Ok ( None )
351
- }
352
- }
353
-
354
336
fn missing_assoc_item_kind_err (
355
337
& self ,
356
338
item_type : & str ,
@@ -690,7 +672,11 @@ impl<'a> Parser<'a> {
690
672
( ident, AssocItemKind :: Fn ( sig, body) , generics)
691
673
} else if self . check_keyword ( kw:: Const ) {
692
674
self . parse_assoc_const ( ) ?
693
- } else if let Some ( mac) = self . parse_assoc_macro_invoc ( "associated" , & vis, at_end) ? {
675
+ } else if self . isnt_macro_invocation ( ) {
676
+ return Err ( self . missing_assoc_item_kind_err ( "associated" , self . prev_span ) ) ;
677
+ } else if self . token . is_path_start ( ) {
678
+ let mac = self . parse_item_macro ( & vis) ?;
679
+ * at_end = true ;
694
680
( Ident :: invalid ( ) , AssocItemKind :: Macro ( mac) , Generics :: default ( ) )
695
681
} else {
696
682
self . recover_attrs_no_item ( & attrs) ?;
@@ -913,7 +899,11 @@ impl<'a> Parser<'a> {
913
899
)
914
900
. emit ( ) ;
915
901
self . parse_item_foreign_static ( ) ?
916
- } else if let Some ( mac) = self . parse_assoc_macro_invoc ( "extern" , & vis, at_end) ? {
902
+ } else if self . isnt_macro_invocation ( ) {
903
+ return Err ( self . missing_assoc_item_kind_err ( "extern" , self . prev_span ) ) ;
904
+ } else if self . token . is_path_start ( ) {
905
+ let mac = self . parse_item_macro ( & vis) ?;
906
+ * at_end = true ;
917
907
( Ident :: invalid ( ) , ForeignItemKind :: Macro ( mac) )
918
908
} else {
919
909
self . recover_attrs_no_item ( & attrs) ?;
0 commit comments