@@ -42,7 +42,6 @@ pub(crate) fn pin_project(args: TokenStream, input: TokenStream) -> TokenStream
42
42
TokenTree :: Punct ( p) if p. as_char ( ) == ',' => at_start = true ,
43
43
TokenTree :: Punct ( p) if p. as_char ( ) == '\'' && at_start => {
44
44
ty_generics. push ( tt. clone ( ) ) ;
45
- ty_generics. push ( TokenTree :: Punct ( Punct :: new ( ',' , Spacing :: Alone ) ) ) ;
46
45
}
47
46
_ => { }
48
47
}
@@ -57,55 +56,49 @@ pub(crate) fn pin_project(args: TokenStream, input: TokenStream) -> TokenStream
57
56
}
58
57
rest. extend ( toks) ;
59
58
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)
111
104
}
0 commit comments