@@ -1668,7 +1668,7 @@ impl InvocationCollectorNode for ast::Crate {
16681668 }
16691669}
16701670
1671- impl InvocationCollectorNode for P < ast:: Ty > {
1671+ impl InvocationCollectorNode for ast:: Ty {
16721672 type OutputTy = P < ast:: Ty > ;
16731673 const KIND : AstFragmentKind = AstFragmentKind :: Ty ;
16741674 fn to_annotatable ( self ) -> Annotatable {
@@ -1691,7 +1691,7 @@ impl InvocationCollectorNode for P<ast::Ty> {
16911691 }
16921692}
16931693
1694- impl InvocationCollectorNode for P < ast:: Pat > {
1694+ impl InvocationCollectorNode for ast:: Pat {
16951695 type OutputTy = P < ast:: Pat > ;
16961696 const KIND : AstFragmentKind = AstFragmentKind :: Pat ;
16971697 fn to_annotatable ( self ) -> Annotatable {
@@ -1714,11 +1714,11 @@ impl InvocationCollectorNode for P<ast::Pat> {
17141714 }
17151715}
17161716
1717- impl InvocationCollectorNode for P < ast:: Expr > {
1717+ impl InvocationCollectorNode for ast:: Expr {
17181718 type OutputTy = P < ast:: Expr > ;
17191719 const KIND : AstFragmentKind = AstFragmentKind :: Expr ;
17201720 fn to_annotatable ( self ) -> Annotatable {
1721- Annotatable :: Expr ( self )
1721+ Annotatable :: Expr ( P ( self ) )
17221722 }
17231723 fn fragment_to_output ( fragment : AstFragment ) -> Self :: OutputTy {
17241724 fragment. make_expr ( )
@@ -1855,37 +1855,37 @@ impl DummyAstNode for ast::Crate {
18551855 }
18561856}
18571857
1858- impl DummyAstNode for P < ast:: Ty > {
1858+ impl DummyAstNode for ast:: Ty {
18591859 fn dummy ( ) -> Self {
1860- P ( ast:: Ty {
1860+ ast:: Ty {
18611861 id : DUMMY_NODE_ID ,
18621862 kind : TyKind :: Dummy ,
18631863 span : Default :: default ( ) ,
18641864 tokens : Default :: default ( ) ,
1865- } )
1865+ }
18661866 }
18671867}
18681868
1869- impl DummyAstNode for P < ast:: Pat > {
1869+ impl DummyAstNode for ast:: Pat {
18701870 fn dummy ( ) -> Self {
1871- P ( ast:: Pat {
1871+ ast:: Pat {
18721872 id : DUMMY_NODE_ID ,
18731873 kind : PatKind :: Wild ,
18741874 span : Default :: default ( ) ,
18751875 tokens : Default :: default ( ) ,
1876- } )
1876+ }
18771877 }
18781878}
18791879
1880- impl DummyAstNode for P < ast:: Expr > {
1880+ impl DummyAstNode for ast:: Expr {
18811881 fn dummy ( ) -> Self {
18821882 ast:: Expr :: dummy ( )
18831883 }
18841884}
18851885
18861886impl DummyAstNode for AstNodeWrapper < P < ast:: Expr > , MethodReceiverTag > {
18871887 fn dummy ( ) -> Self {
1888- AstNodeWrapper :: new ( ast:: Expr :: dummy ( ) , MethodReceiverTag )
1888+ AstNodeWrapper :: new ( P ( ast:: Expr :: dummy ( ) ) , MethodReceiverTag )
18891889 }
18901890}
18911891
@@ -2172,7 +2172,7 @@ impl<'a, 'b> InvocationCollector<'a, 'b> {
21722172 }
21732173 }
21742174
2175- fn visit_node < Node : InvocationCollectorNode < OutputTy = Node > + DummyAstNode > (
2175+ fn visit_node < Node : InvocationCollectorNode < OutputTy : Into < Node > > + DummyAstNode > (
21762176 & mut self ,
21772177 node : & mut Node ,
21782178 ) {
@@ -2196,15 +2196,15 @@ impl<'a, 'b> InvocationCollector<'a, 'b> {
21962196 let n = mem:: replace ( node, Node :: dummy ( ) ) ;
21972197 * node = self
21982198 . collect_attr ( ( attr, pos, derives) , n. to_annotatable ( ) , Node :: KIND )
2199- . make_ast :: < Node > ( )
2199+ . make_ast :: < Node > ( ) . into ( )
22002200 }
22012201 } ,
22022202 None if node. is_mac_call ( ) => {
22032203 let n = mem:: replace ( node, Node :: dummy ( ) ) ;
22042204 let ( mac, attrs, _) = n. take_mac_call ( ) ;
22052205 self . check_attributes ( & attrs, & mac) ;
22062206
2207- * node = self . collect_bang ( mac, Node :: KIND ) . make_ast :: < Node > ( )
2207+ * node = self . collect_bang ( mac, Node :: KIND ) . make_ast :: < Node > ( ) . into ( )
22082208 }
22092209 None if node. delegation ( ) . is_some ( ) => unreachable ! ( ) ,
22102210 None => {
@@ -2314,15 +2314,15 @@ impl<'a, 'b> MutVisitor for InvocationCollector<'a, 'b> {
23142314 self . visit_node ( node)
23152315 }
23162316
2317- fn visit_ty ( & mut self , node : & mut P < ast:: Ty > ) {
2317+ fn visit_ty ( & mut self , node : & mut ast:: Ty ) {
23182318 self . visit_node ( node)
23192319 }
23202320
2321- fn visit_pat ( & mut self , node : & mut P < ast:: Pat > ) {
2321+ fn visit_pat ( & mut self , node : & mut ast:: Pat ) {
23222322 self . visit_node ( node)
23232323 }
23242324
2325- fn visit_expr ( & mut self , node : & mut P < ast:: Expr > ) {
2325+ fn visit_expr ( & mut self , node : & mut ast:: Expr ) {
23262326 // FIXME: Feature gating is performed inconsistently between `Expr` and `OptExpr`.
23272327 if let Some ( attr) = node. attrs . first ( ) {
23282328 self . cfg ( ) . maybe_emit_expr_attr_err ( attr) ;
0 commit comments