@@ -1768,7 +1768,7 @@ impl InvocationCollectorNode for ast::Crate {
17681768 }
17691769}
17701770
1771- impl InvocationCollectorNode for P < ast:: Ty > {
1771+ impl InvocationCollectorNode for ast:: Ty {
17721772 type OutputTy = P < ast:: Ty > ;
17731773 const KIND : AstFragmentKind = AstFragmentKind :: Ty ;
17741774 fn to_annotatable ( self ) -> Annotatable {
@@ -1791,7 +1791,7 @@ impl InvocationCollectorNode for P<ast::Ty> {
17911791 }
17921792}
17931793
1794- impl InvocationCollectorNode for P < ast:: Pat > {
1794+ impl InvocationCollectorNode for ast:: Pat {
17951795 type OutputTy = P < ast:: Pat > ;
17961796 const KIND : AstFragmentKind = AstFragmentKind :: Pat ;
17971797 fn to_annotatable ( self ) -> Annotatable {
@@ -1814,11 +1814,11 @@ impl InvocationCollectorNode for P<ast::Pat> {
18141814 }
18151815}
18161816
1817- impl InvocationCollectorNode for P < ast:: Expr > {
1817+ impl InvocationCollectorNode for ast:: Expr {
18181818 type OutputTy = P < ast:: Expr > ;
18191819 const KIND : AstFragmentKind = AstFragmentKind :: Expr ;
18201820 fn to_annotatable ( self ) -> Annotatable {
1821- Annotatable :: Expr ( self )
1821+ Annotatable :: Expr ( P ( self ) )
18221822 }
18231823 fn fragment_to_output ( fragment : AstFragment ) -> Self :: OutputTy {
18241824 fragment. make_expr ( )
@@ -1955,37 +1955,37 @@ impl DummyAstNode for ast::Crate {
19551955 }
19561956}
19571957
1958- impl DummyAstNode for P < ast:: Ty > {
1958+ impl DummyAstNode for ast:: Ty {
19591959 fn dummy ( ) -> Self {
1960- P ( ast:: Ty {
1960+ ast:: Ty {
19611961 id : DUMMY_NODE_ID ,
19621962 kind : TyKind :: Dummy ,
19631963 span : Default :: default ( ) ,
19641964 tokens : Default :: default ( ) ,
1965- } )
1965+ }
19661966 }
19671967}
19681968
1969- impl DummyAstNode for P < ast:: Pat > {
1969+ impl DummyAstNode for ast:: Pat {
19701970 fn dummy ( ) -> Self {
1971- P ( ast:: Pat {
1971+ ast:: Pat {
19721972 id : DUMMY_NODE_ID ,
19731973 kind : PatKind :: Wild ,
19741974 span : Default :: default ( ) ,
19751975 tokens : Default :: default ( ) ,
1976- } )
1976+ }
19771977 }
19781978}
19791979
1980- impl DummyAstNode for P < ast:: Expr > {
1980+ impl DummyAstNode for ast:: Expr {
19811981 fn dummy ( ) -> Self {
19821982 ast:: Expr :: dummy ( )
19831983 }
19841984}
19851985
19861986impl DummyAstNode for AstNodeWrapper < P < ast:: Expr > , MethodReceiverTag > {
19871987 fn dummy ( ) -> Self {
1988- AstNodeWrapper :: new ( ast:: Expr :: dummy ( ) , MethodReceiverTag )
1988+ AstNodeWrapper :: new ( P ( ast:: Expr :: dummy ( ) ) , MethodReceiverTag )
19891989 }
19901990}
19911991
@@ -2272,7 +2272,7 @@ impl<'a, 'b> InvocationCollector<'a, 'b> {
22722272 }
22732273 }
22742274
2275- fn visit_node < Node : InvocationCollectorNode < OutputTy = Node > + DummyAstNode > (
2275+ fn visit_node < Node : InvocationCollectorNode < OutputTy : Into < Node > > + DummyAstNode > (
22762276 & mut self ,
22772277 node : & mut Node ,
22782278 ) {
@@ -2297,14 +2297,15 @@ impl<'a, 'b> InvocationCollector<'a, 'b> {
22972297 * node = self
22982298 . collect_attr ( ( attr, pos, derives) , n. to_annotatable ( ) , Node :: KIND )
22992299 . make_ast :: < Node > ( )
2300+ . into ( )
23002301 }
23012302 } ,
23022303 None if node. is_mac_call ( ) => {
23032304 let n = mem:: replace ( node, Node :: dummy ( ) ) ;
23042305 let ( mac, attrs, _) = n. take_mac_call ( ) ;
23052306 self . check_attributes ( & attrs, & mac) ;
23062307
2307- * node = self . collect_bang ( mac, Node :: KIND ) . make_ast :: < Node > ( )
2308+ * node = self . collect_bang ( mac, Node :: KIND ) . make_ast :: < Node > ( ) . into ( )
23082309 }
23092310 None if node. delegation ( ) . is_some ( ) => unreachable ! ( ) ,
23102311 None => {
@@ -2414,15 +2415,15 @@ impl<'a, 'b> MutVisitor for InvocationCollector<'a, 'b> {
24142415 self . visit_node ( node)
24152416 }
24162417
2417- fn visit_ty ( & mut self , node : & mut P < ast:: Ty > ) {
2418+ fn visit_ty ( & mut self , node : & mut ast:: Ty ) {
24182419 self . visit_node ( node)
24192420 }
24202421
2421- fn visit_pat ( & mut self , node : & mut P < ast:: Pat > ) {
2422+ fn visit_pat ( & mut self , node : & mut ast:: Pat ) {
24222423 self . visit_node ( node)
24232424 }
24242425
2425- fn visit_expr ( & mut self , node : & mut P < ast:: Expr > ) {
2426+ fn visit_expr ( & mut self , node : & mut ast:: Expr ) {
24262427 // FIXME: Feature gating is performed inconsistently between `Expr` and `OptExpr`.
24272428 if let Some ( attr) = node. attrs . first ( ) {
24282429 self . cfg ( ) . maybe_emit_expr_attr_err ( attr) ;
0 commit comments