@@ -42,7 +42,6 @@ pub(crate) fn pin_project(args: TokenStream, input: TokenStream) -> TokenStream
4242 TokenTree :: Punct ( p) if p. as_char ( ) == ',' => at_start = true ,
4343 TokenTree :: Punct ( p) if p. as_char ( ) == '\'' && at_start => {
4444 ty_generics. push ( tt. clone ( ) ) ;
45- ty_generics. push ( TokenTree :: Punct ( Punct :: new ( ',' , Spacing :: Alone ) ) ) ;
4645 }
4746 _ => { }
4847 }
@@ -57,55 +56,49 @@ pub(crate) fn pin_project(args: TokenStream, input: TokenStream) -> TokenStream
5756 }
5857 rest. extend ( toks) ;
5958 let last = rest. pop ( ) ;
60- TokenStream :: from_iter ( vec ! [
61- TokenTree :: Punct ( Punct :: new( ':' , Spacing :: Joint ) ) ,
62- TokenTree :: Punct ( Punct :: new( ':' , Spacing :: Alone ) ) ,
63- TokenTree :: Ident ( Ident :: new( "kernel" , Span :: call_site( ) ) ) ,
64- TokenTree :: Punct ( Punct :: new( ':' , Spacing :: Joint ) ) ,
65- TokenTree :: Punct ( Punct :: new( ':' , Spacing :: Alone ) ) ,
66- TokenTree :: Ident ( Ident :: new( "pin_project" , Span :: call_site( ) ) ) ,
67- TokenTree :: Punct ( Punct :: new( '!' , Spacing :: Alone ) ) ,
68- TokenTree :: Group ( Group :: new(
69- Delimiter :: Brace ,
70- TokenStream :: from_iter( vec![
71- TokenTree :: Ident ( Ident :: new( "parse_input" , Span :: call_site( ) ) ) ,
72- TokenTree :: Punct ( Punct :: new( ':' , Spacing :: Alone ) ) ,
73- TokenTree :: Punct ( Punct :: new( '@' , Spacing :: Alone ) ) ,
74- TokenTree :: Ident ( Ident :: new( "args" , Span :: call_site( ) ) ) ,
75- TokenTree :: Group ( Group :: new(
76- Delimiter :: Parenthesis ,
77- TokenStream :: from_iter( args) ,
78- ) ) ,
79- TokenTree :: Punct ( Punct :: new( ',' , Spacing :: Alone ) ) ,
80- TokenTree :: Punct ( Punct :: new( '@' , Spacing :: Alone ) ) ,
81- TokenTree :: Ident ( Ident :: new( "sig" , Span :: call_site( ) ) ) ,
82- TokenTree :: Group ( Group :: new(
83- Delimiter :: Parenthesis ,
84- TokenStream :: from_iter( rest) ,
85- ) ) ,
86- TokenTree :: Punct ( Punct :: new( ',' , Spacing :: Alone ) ) ,
87- TokenTree :: Punct ( Punct :: new( '@' , Spacing :: Alone ) ) ,
88- TokenTree :: Ident ( Ident :: new( "impl_generics" , Span :: call_site( ) ) ) ,
89- TokenTree :: Group ( Group :: new(
90- Delimiter :: Parenthesis ,
91- TokenStream :: from_iter( impl_generics) ,
92- ) ) ,
93- TokenTree :: Punct ( Punct :: new( ',' , Spacing :: Alone ) ) ,
94- TokenTree :: Punct ( Punct :: new( '@' , Spacing :: Alone ) ) ,
95- TokenTree :: Ident ( Ident :: new( "ty_generics" , Span :: call_site( ) ) ) ,
96- TokenTree :: Group ( Group :: new(
97- Delimiter :: Parenthesis ,
98- TokenStream :: from_iter( ty_generics) ,
99- ) ) ,
100- TokenTree :: Punct ( Punct :: new( ',' , Spacing :: Alone ) ) ,
101- TokenTree :: Punct ( Punct :: new( '@' , Spacing :: Alone ) ) ,
102- TokenTree :: Ident ( Ident :: new( "body" , Span :: call_site( ) ) ) ,
103- TokenTree :: Group ( Group :: new(
104- Delimiter :: Parenthesis ,
105- TokenStream :: from_iter( last) ,
106- ) ) ,
107- TokenTree :: Punct ( Punct :: new( ',' , Spacing :: Alone ) ) ,
108- ] ) ,
109- ) ) ,
110- ] )
59+ let mut ret = vec ! [ ] ;
60+ ret. extend ( "::kernel::pin_project!" . parse :: < TokenStream > ( ) . unwrap ( ) ) ;
61+ ret. push ( TokenTree :: Group ( Group :: new (
62+ Delimiter :: Brace ,
63+ TokenStream :: from_iter ( vec ! [
64+ TokenTree :: Ident ( Ident :: new( "parse_input" , Span :: call_site( ) ) ) ,
65+ TokenTree :: Punct ( Punct :: new( ':' , Spacing :: Alone ) ) ,
66+ TokenTree :: Punct ( Punct :: new( '@' , Spacing :: Alone ) ) ,
67+ TokenTree :: Ident ( Ident :: new( "args" , Span :: call_site( ) ) ) ,
68+ TokenTree :: Group ( Group :: new(
69+ Delimiter :: Parenthesis ,
70+ TokenStream :: from_iter( args) ,
71+ ) ) ,
72+ TokenTree :: Punct ( Punct :: new( ',' , Spacing :: Alone ) ) ,
73+ TokenTree :: Punct ( Punct :: new( '@' , Spacing :: Alone ) ) ,
74+ TokenTree :: Ident ( Ident :: new( "sig" , Span :: call_site( ) ) ) ,
75+ TokenTree :: Group ( Group :: new(
76+ Delimiter :: Parenthesis ,
77+ TokenStream :: from_iter( rest) ,
78+ ) ) ,
79+ TokenTree :: Punct ( Punct :: new( ',' , Spacing :: Alone ) ) ,
80+ TokenTree :: Punct ( Punct :: new( '@' , Spacing :: Alone ) ) ,
81+ TokenTree :: Ident ( Ident :: new( "impl_generics" , Span :: call_site( ) ) ) ,
82+ TokenTree :: Group ( Group :: new(
83+ Delimiter :: Parenthesis ,
84+ TokenStream :: from_iter( impl_generics) ,
85+ ) ) ,
86+ TokenTree :: Punct ( Punct :: new( ',' , Spacing :: Alone ) ) ,
87+ TokenTree :: Punct ( Punct :: new( '@' , Spacing :: Alone ) ) ,
88+ TokenTree :: Ident ( Ident :: new( "ty_generics" , Span :: call_site( ) ) ) ,
89+ TokenTree :: Group ( Group :: new(
90+ Delimiter :: Parenthesis ,
91+ TokenStream :: from_iter( ty_generics) ,
92+ ) ) ,
93+ TokenTree :: Punct ( Punct :: new( ',' , Spacing :: Alone ) ) ,
94+ TokenTree :: Punct ( Punct :: new( '@' , Spacing :: Alone ) ) ,
95+ TokenTree :: Ident ( Ident :: new( "body" , Span :: call_site( ) ) ) ,
96+ TokenTree :: Group ( Group :: new(
97+ Delimiter :: Parenthesis ,
98+ TokenStream :: from_iter( last) ,
99+ ) ) ,
100+ TokenTree :: Punct ( Punct :: new( ',' , Spacing :: Alone ) ) ,
101+ ] ) ,
102+ ) ) ) ;
103+ TokenStream :: from_iter ( ret)
111104}
0 commit comments