@@ -6,10 +6,11 @@ use syntax::{
6
6
AstNode , SmolStr ,
7
7
} ;
8
8
use test_utils:: { bench, bench_fixture, skip_slow_tests} ;
9
+ use tt:: { Span , TokenId } ;
9
10
10
11
use crate :: {
11
12
parser:: { MetaVarKind , Op , RepeatKind , Separator } ,
12
- syntax_node_to_token_tree, tt , DeclarativeMacro ,
13
+ syntax_node_to_token_tree, DeclarativeMacro ,
13
14
} ;
14
15
15
16
#[ test]
@@ -54,7 +55,7 @@ fn macro_rules_fixtures() -> FxHashMap<String, DeclarativeMacro> {
54
55
. collect ( )
55
56
}
56
57
57
- fn macro_rules_fixtures_tt ( ) -> FxHashMap < String , tt:: Subtree > {
58
+ fn macro_rules_fixtures_tt ( ) -> FxHashMap < String , tt:: Subtree < TokenId > > {
58
59
let fixture = bench_fixture:: numerous_macro_rules ( ) ;
59
60
let source_file = ast:: SourceFile :: parse ( & fixture) . ok ( ) . unwrap ( ) ;
60
61
@@ -71,7 +72,9 @@ fn macro_rules_fixtures_tt() -> FxHashMap<String, tt::Subtree> {
71
72
}
72
73
73
74
/// Generate random invocation fixtures from rules
74
- fn invocation_fixtures ( rules : & FxHashMap < String , DeclarativeMacro > ) -> Vec < ( String , tt:: Subtree ) > {
75
+ fn invocation_fixtures (
76
+ rules : & FxHashMap < String , DeclarativeMacro > ,
77
+ ) -> Vec < ( String , tt:: Subtree < TokenId > ) > {
75
78
let mut seed = 123456789 ;
76
79
let mut res = Vec :: new ( ) ;
77
80
@@ -93,8 +96,8 @@ fn invocation_fixtures(rules: &FxHashMap<String, DeclarativeMacro>) -> Vec<(Stri
93
96
loop {
94
97
let mut subtree = tt:: Subtree {
95
98
delimiter : tt:: Delimiter {
96
- open : tt:: TokenId :: UNSPECIFIED ,
97
- close : tt:: TokenId :: UNSPECIFIED ,
99
+ open : tt:: TokenId :: DUMMY ,
100
+ close : tt:: TokenId :: DUMMY ,
98
101
kind : tt:: DelimiterKind :: Invisible ,
99
102
} ,
100
103
token_trees : vec ! [ ] ,
@@ -116,7 +119,7 @@ fn invocation_fixtures(rules: &FxHashMap<String, DeclarativeMacro>) -> Vec<(Stri
116
119
}
117
120
return res;
118
121
119
- fn collect_from_op ( op : & Op , parent : & mut tt:: Subtree , seed : & mut usize ) {
122
+ fn collect_from_op ( op : & Op < TokenId > , parent : & mut tt:: Subtree < TokenId > , seed : & mut usize ) {
120
123
return match op {
121
124
Op :: Var { kind, .. } => match kind. as_ref ( ) {
122
125
Some ( MetaVarKind :: Ident ) => parent. token_trees . push ( make_ident ( "foo" ) ) ,
@@ -202,36 +205,30 @@ fn invocation_fixtures(rules: &FxHashMap<String, DeclarativeMacro>) -> Vec<(Stri
202
205
* seed = usize:: wrapping_add ( usize:: wrapping_mul ( * seed, a) , c) ;
203
206
* seed
204
207
}
205
- fn make_ident ( ident : & str ) -> tt:: TokenTree {
206
- tt:: Leaf :: Ident ( tt:: Ident {
207
- span : tt:: TokenId :: unspecified ( ) ,
208
- text : SmolStr :: new ( ident) ,
209
- } )
210
- . into ( )
208
+ fn make_ident ( ident : & str ) -> tt:: TokenTree < TokenId > {
209
+ tt:: Leaf :: Ident ( tt:: Ident { span : tt:: TokenId :: DUMMY , text : SmolStr :: new ( ident) } )
210
+ . into ( )
211
211
}
212
- fn make_punct ( char : char ) -> tt:: TokenTree {
212
+ fn make_punct ( char : char ) -> tt:: TokenTree < TokenId > {
213
213
tt:: Leaf :: Punct ( tt:: Punct {
214
- span : tt:: TokenId :: unspecified ( ) ,
214
+ span : tt:: TokenId :: DUMMY ,
215
215
char,
216
216
spacing : tt:: Spacing :: Alone ,
217
217
} )
218
218
. into ( )
219
219
}
220
- fn make_literal ( lit : & str ) -> tt:: TokenTree {
221
- tt:: Leaf :: Literal ( tt:: Literal {
222
- span : tt:: TokenId :: unspecified ( ) ,
223
- text : SmolStr :: new ( lit) ,
224
- } )
225
- . into ( )
220
+ fn make_literal ( lit : & str ) -> tt:: TokenTree < TokenId > {
221
+ tt:: Leaf :: Literal ( tt:: Literal { span : tt:: TokenId :: DUMMY , text : SmolStr :: new ( lit) } )
222
+ . into ( )
226
223
}
227
224
fn make_subtree (
228
225
kind : tt:: DelimiterKind ,
229
- token_trees : Option < Vec < tt:: TokenTree > > ,
230
- ) -> tt:: TokenTree {
226
+ token_trees : Option < Vec < tt:: TokenTree < TokenId > > > ,
227
+ ) -> tt:: TokenTree < TokenId > {
231
228
tt:: Subtree {
232
229
delimiter : tt:: Delimiter {
233
- open : tt:: TokenId :: unspecified ( ) ,
234
- close : tt:: TokenId :: unspecified ( ) ,
230
+ open : tt:: TokenId :: DUMMY ,
231
+ close : tt:: TokenId :: DUMMY ,
235
232
kind,
236
233
} ,
237
234
token_trees : token_trees. unwrap_or_default ( ) ,
0 commit comments