1- use std:: ops:: Deref ;
21use std:: path:: PathBuf ;
32use std:: rc:: Rc ;
43use std:: sync:: Arc ;
@@ -1117,7 +1116,6 @@ enum AddSemicolon {
11171116/// of functionality used by `InvocationCollector`.
11181117trait InvocationCollectorNode : HasAttrs + HasNodeId + Sized {
11191118 type OutputTy = SmallVec < [ Self ; 1 ] > ;
1120- type AttrsTy : Deref < Target = [ ast:: Attribute ] > = ast:: AttrVec ;
11211119 type ItemKind = ItemKind ;
11221120 const KIND : AstFragmentKind ;
11231121 fn to_annotatable ( self ) -> Annotatable ;
@@ -1134,7 +1132,7 @@ trait InvocationCollectorNode: HasAttrs + HasNodeId + Sized {
11341132 fn is_mac_call ( & self ) -> bool {
11351133 false
11361134 }
1137- fn take_mac_call ( self ) -> ( P < ast:: MacCall > , Self :: AttrsTy , AddSemicolon ) {
1135+ fn take_mac_call ( self ) -> ( P < ast:: MacCall > , ast :: AttrVec , AddSemicolon ) {
11381136 unreachable ! ( )
11391137 }
11401138 fn delegation ( & self ) -> Option < ( & ast:: DelegationMac , & ast:: Item < Self :: ItemKind > ) > {
@@ -1189,7 +1187,7 @@ impl InvocationCollectorNode for P<ast::Item> {
11891187 fn is_mac_call ( & self ) -> bool {
11901188 matches ! ( self . kind, ItemKind :: MacCall ( ..) )
11911189 }
1192- fn take_mac_call ( self ) -> ( P < ast:: MacCall > , Self :: AttrsTy , AddSemicolon ) {
1190+ fn take_mac_call ( self ) -> ( P < ast:: MacCall > , ast :: AttrVec , AddSemicolon ) {
11931191 let node = self . into_inner ( ) ;
11941192 match node. kind {
11951193 ItemKind :: MacCall ( mac) => ( mac, node. attrs , AddSemicolon :: No ) ,
@@ -1345,7 +1343,7 @@ impl InvocationCollectorNode for AstNodeWrapper<P<ast::AssocItem>, TraitItemTag>
13451343 fn is_mac_call ( & self ) -> bool {
13461344 matches ! ( self . wrapped. kind, AssocItemKind :: MacCall ( ..) )
13471345 }
1348- fn take_mac_call ( self ) -> ( P < ast:: MacCall > , Self :: AttrsTy , AddSemicolon ) {
1346+ fn take_mac_call ( self ) -> ( P < ast:: MacCall > , ast :: AttrVec , AddSemicolon ) {
13491347 let item = self . wrapped . into_inner ( ) ;
13501348 match item. kind {
13511349 AssocItemKind :: MacCall ( mac) => ( mac, item. attrs , AddSemicolon :: No ) ,
@@ -1386,7 +1384,7 @@ impl InvocationCollectorNode for AstNodeWrapper<P<ast::AssocItem>, ImplItemTag>
13861384 fn is_mac_call ( & self ) -> bool {
13871385 matches ! ( self . wrapped. kind, AssocItemKind :: MacCall ( ..) )
13881386 }
1389- fn take_mac_call ( self ) -> ( P < ast:: MacCall > , Self :: AttrsTy , AddSemicolon ) {
1387+ fn take_mac_call ( self ) -> ( P < ast:: MacCall > , ast :: AttrVec , AddSemicolon ) {
13901388 let item = self . wrapped . into_inner ( ) ;
13911389 match item. kind {
13921390 AssocItemKind :: MacCall ( mac) => ( mac, item. attrs , AddSemicolon :: No ) ,
@@ -1427,7 +1425,7 @@ impl InvocationCollectorNode for AstNodeWrapper<P<ast::AssocItem>, TraitImplItem
14271425 fn is_mac_call ( & self ) -> bool {
14281426 matches ! ( self . wrapped. kind, AssocItemKind :: MacCall ( ..) )
14291427 }
1430- fn take_mac_call ( self ) -> ( P < ast:: MacCall > , Self :: AttrsTy , AddSemicolon ) {
1428+ fn take_mac_call ( self ) -> ( P < ast:: MacCall > , ast :: AttrVec , AddSemicolon ) {
14311429 let item = self . wrapped . into_inner ( ) ;
14321430 match item. kind {
14331431 AssocItemKind :: MacCall ( mac) => ( mac, item. attrs , AddSemicolon :: No ) ,
@@ -1465,7 +1463,7 @@ impl InvocationCollectorNode for P<ast::ForeignItem> {
14651463 fn is_mac_call ( & self ) -> bool {
14661464 matches ! ( self . kind, ForeignItemKind :: MacCall ( ..) )
14671465 }
1468- fn take_mac_call ( self ) -> ( P < ast:: MacCall > , Self :: AttrsTy , AddSemicolon ) {
1466+ fn take_mac_call ( self ) -> ( P < ast:: MacCall > , ast :: AttrVec , AddSemicolon ) {
14691467 let node = self . into_inner ( ) ;
14701468 match node. kind {
14711469 ForeignItemKind :: MacCall ( mac) => ( mac, node. attrs , AddSemicolon :: No ) ,
@@ -1579,7 +1577,6 @@ impl InvocationCollectorNode for ast::Arm {
15791577}
15801578
15811579impl InvocationCollectorNode for ast:: Stmt {
1582- type AttrsTy = ast:: AttrVec ;
15831580 const KIND : AstFragmentKind = AstFragmentKind :: Stmts ;
15841581 fn to_annotatable ( self ) -> Annotatable {
15851582 Annotatable :: Stmt ( P ( self ) )
@@ -1599,7 +1596,7 @@ impl InvocationCollectorNode for ast::Stmt {
15991596 StmtKind :: Let ( ..) | StmtKind :: Empty => false ,
16001597 }
16011598 }
1602- fn take_mac_call ( self ) -> ( P < ast:: MacCall > , Self :: AttrsTy , AddSemicolon ) {
1599+ fn take_mac_call ( self ) -> ( P < ast:: MacCall > , ast :: AttrVec , AddSemicolon ) {
16031600 // We pull macro invocations (both attributes and fn-like macro calls) out of their
16041601 // `StmtKind`s and treat them as statement macro invocations, not as items or expressions.
16051602 let ( add_semicolon, mac, attrs) = match self . kind {
@@ -1693,7 +1690,7 @@ impl InvocationCollectorNode for P<ast::Ty> {
16931690 fn is_mac_call ( & self ) -> bool {
16941691 matches ! ( self . kind, ast:: TyKind :: MacCall ( ..) )
16951692 }
1696- fn take_mac_call ( self ) -> ( P < ast:: MacCall > , Self :: AttrsTy , AddSemicolon ) {
1693+ fn take_mac_call ( self ) -> ( P < ast:: MacCall > , ast :: AttrVec , AddSemicolon ) {
16971694 let node = self . into_inner ( ) ;
16981695 match node. kind {
16991696 TyKind :: MacCall ( mac) => ( mac, AttrVec :: new ( ) , AddSemicolon :: No ) ,
@@ -1717,7 +1714,7 @@ impl InvocationCollectorNode for P<ast::Pat> {
17171714 fn is_mac_call ( & self ) -> bool {
17181715 matches ! ( self . kind, PatKind :: MacCall ( ..) )
17191716 }
1720- fn take_mac_call ( self ) -> ( P < ast:: MacCall > , Self :: AttrsTy , AddSemicolon ) {
1717+ fn take_mac_call ( self ) -> ( P < ast:: MacCall > , ast :: AttrVec , AddSemicolon ) {
17211718 let node = self . into_inner ( ) ;
17221719 match node. kind {
17231720 PatKind :: MacCall ( mac) => ( mac, AttrVec :: new ( ) , AddSemicolon :: No ) ,
@@ -1728,7 +1725,6 @@ impl InvocationCollectorNode for P<ast::Pat> {
17281725
17291726impl InvocationCollectorNode for P < ast:: Expr > {
17301727 type OutputTy = P < ast:: Expr > ;
1731- type AttrsTy = ast:: AttrVec ;
17321728 const KIND : AstFragmentKind = AstFragmentKind :: Expr ;
17331729 fn to_annotatable ( self ) -> Annotatable {
17341730 Annotatable :: Expr ( self )
@@ -1745,7 +1741,7 @@ impl InvocationCollectorNode for P<ast::Expr> {
17451741 fn is_mac_call ( & self ) -> bool {
17461742 matches ! ( self . kind, ExprKind :: MacCall ( ..) )
17471743 }
1748- fn take_mac_call ( self ) -> ( P < ast:: MacCall > , Self :: AttrsTy , AddSemicolon ) {
1744+ fn take_mac_call ( self ) -> ( P < ast:: MacCall > , ast :: AttrVec , AddSemicolon ) {
17491745 let node = self . into_inner ( ) ;
17501746 match node. kind {
17511747 ExprKind :: MacCall ( mac) => ( mac, node. attrs , AddSemicolon :: No ) ,
@@ -1757,7 +1753,6 @@ impl InvocationCollectorNode for P<ast::Expr> {
17571753struct OptExprTag ;
17581754impl InvocationCollectorNode for AstNodeWrapper < P < ast:: Expr > , OptExprTag > {
17591755 type OutputTy = Option < P < ast:: Expr > > ;
1760- type AttrsTy = ast:: AttrVec ;
17611756 const KIND : AstFragmentKind = AstFragmentKind :: OptExpr ;
17621757 fn to_annotatable ( self ) -> Annotatable {
17631758 Annotatable :: Expr ( self . wrapped )
@@ -1772,7 +1767,7 @@ impl InvocationCollectorNode for AstNodeWrapper<P<ast::Expr>, OptExprTag> {
17721767 fn is_mac_call ( & self ) -> bool {
17731768 matches ! ( self . wrapped. kind, ast:: ExprKind :: MacCall ( ..) )
17741769 }
1775- fn take_mac_call ( self ) -> ( P < ast:: MacCall > , Self :: AttrsTy , AddSemicolon ) {
1770+ fn take_mac_call ( self ) -> ( P < ast:: MacCall > , ast :: AttrVec , AddSemicolon ) {
17761771 let node = self . wrapped . into_inner ( ) ;
17771772 match node. kind {
17781773 ExprKind :: MacCall ( mac) => ( mac, node. attrs , AddSemicolon :: No ) ,
@@ -1794,7 +1789,6 @@ impl DummyAstNode for MethodReceiverTag {
17941789}
17951790impl InvocationCollectorNode for AstNodeWrapper < P < ast:: Expr > , MethodReceiverTag > {
17961791 type OutputTy = Self ;
1797- type AttrsTy = ast:: AttrVec ;
17981792 const KIND : AstFragmentKind = AstFragmentKind :: MethodReceiverExpr ;
17991793 fn descr ( ) -> & ' static str {
18001794 "an expression"
@@ -1811,7 +1805,7 @@ impl InvocationCollectorNode for AstNodeWrapper<P<ast::Expr>, MethodReceiverTag>
18111805 fn is_mac_call ( & self ) -> bool {
18121806 matches ! ( self . wrapped. kind, ast:: ExprKind :: MacCall ( ..) )
18131807 }
1814- fn take_mac_call ( self ) -> ( P < ast:: MacCall > , Self :: AttrsTy , AddSemicolon ) {
1808+ fn take_mac_call ( self ) -> ( P < ast:: MacCall > , ast :: AttrVec , AddSemicolon ) {
18151809 let node = self . wrapped . into_inner ( ) ;
18161810 match node. kind {
18171811 ExprKind :: MacCall ( mac) => ( mac, node. attrs , AddSemicolon :: No ) ,
0 commit comments