File tree Expand file tree Collapse file tree
tests/ui/proc-macro/auxiliary/api Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -8,6 +8,7 @@ extern crate proc_macro;
88mod cmp;
99mod ident;
1010mod literal;
11+ mod tokenstream;
1112
1213use proc_macro:: TokenStream ;
1314
@@ -18,6 +19,7 @@ pub fn run(input: TokenStream) -> TokenStream {
1819 cmp:: test ( ) ;
1920 ident:: test ( ) ;
2021 literal:: test ( ) ;
22+ tokenstream:: test ( ) ;
2123
2224 TokenStream :: new ( )
2325}
Original file line number Diff line number Diff line change 1+ use proc_macro:: * ;
2+
3+ fn assert_eq ( l : TokenStream , r : TokenStream ) {
4+ assert_eq ! ( l. to_string( ) , r. to_string( ) ) ;
5+ for ( lt, rt) in l. into_iter ( ) . zip ( r) {
6+ assert_eq ! ( lt. to_string( ) , rt. to_string( ) ) ;
7+ }
8+ }
9+
10+ pub fn test ( ) {
11+ assert_eq ( TokenStream :: new ( ) , TokenStream :: new ( ) ) ;
12+ let mut stream = TokenStream :: new ( ) ;
13+ assert ! ( stream. is_empty( ) ) ;
14+ stream. extend ( TokenStream :: new ( ) ) ;
15+ assert_eq ( stream. clone ( ) , TokenStream :: new ( ) ) ;
16+
17+ let old = stream. clone ( ) ;
18+ stream. extend ( vec ! [ TokenTree :: Ident ( Ident :: new( "foo" , Span :: call_site( ) ) ) ] ) ;
19+ assert ! ( !stream. is_empty( ) ) ;
20+ assert ! ( old. is_empty( ) ) ;
21+
22+ let stream2 = stream
23+ . clone ( )
24+ . into_iter ( )
25+ . inspect ( |tree| assert_eq ! ( tree. to_string( ) , "foo" ) )
26+ . collect :: < TokenStream > ( ) ;
27+ assert_eq ( stream. clone ( ) , stream2) ;
28+ }
You can’t perform that action at this time.
0 commit comments