@@ -333,24 +333,6 @@ impl<'a> Parser<'a> {
333333 self . token . is_keyword ( kw:: Async ) && self . is_keyword_ahead ( 1 , & [ kw:: Fn ] )
334334 }
335335
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-
354336 fn missing_assoc_item_kind_err (
355337 & self ,
356338 item_type : & str ,
@@ -690,7 +672,11 @@ impl<'a> Parser<'a> {
690672 ( ident, AssocItemKind :: Fn ( sig, body) , generics)
691673 } else if self . check_keyword ( kw:: Const ) {
692674 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 ;
694680 ( Ident :: invalid ( ) , AssocItemKind :: Macro ( mac) , Generics :: default ( ) )
695681 } else {
696682 self . recover_attrs_no_item ( & attrs) ?;
@@ -913,7 +899,11 @@ impl<'a> Parser<'a> {
913899 )
914900 . emit ( ) ;
915901 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 ;
917907 ( Ident :: invalid ( ) , ForeignItemKind :: Macro ( mac) )
918908 } else {
919909 self . recover_attrs_no_item ( & attrs) ?;
0 commit comments