@@ -93,6 +93,8 @@ fn syntax_tree_for_token(node: SyntaxToken, text_range: TextRange) -> Option<Str
93
93
94
94
#[ cfg( test) ]
95
95
mod tests {
96
+ use test_utils:: assert_eq_text;
97
+
96
98
use crate :: mock_analysis:: { single_file, single_file_with_range} ;
97
99
98
100
#[ test]
@@ -101,23 +103,23 @@ mod tests {
101
103
let ( analysis, file_id) = single_file ( r#"fn foo() {}"# ) ;
102
104
let syn = analysis. syntax_tree ( file_id, None ) ;
103
105
104
- assert_eq ! (
106
+ assert_eq_text ! (
105
107
syn. trim( ) ,
106
108
r#"
107
109
SOURCE_FILE@[0; 11)
108
110
FN_DEF@[0; 11)
109
- FN_KW@[0; 2)
110
- WHITESPACE@[2; 3)
111
+ FN_KW@[0; 2) "fn"
112
+ WHITESPACE@[2; 3) " "
111
113
NAME@[3; 6)
112
114
IDENT@[3; 6) "foo"
113
115
PARAM_LIST@[6; 8)
114
- L_PAREN@[6; 7)
115
- R_PAREN@[7; 8)
116
- WHITESPACE@[8; 9)
116
+ L_PAREN@[6; 7) "("
117
+ R_PAREN@[7; 8) ")"
118
+ WHITESPACE@[8; 9) " "
117
119
BLOCK@[9; 11)
118
- L_CURLY@[9; 10)
119
- R_CURLY@[10; 11)
120
- "#
120
+ L_CURLY@[9; 10) "{"
121
+ R_CURLY@[10; 11) "}"
122
+ "#
121
123
. trim( )
122
124
) ;
123
125
@@ -133,40 +135,40 @@ fn test() {
133
135
) ;
134
136
let syn = analysis. syntax_tree ( file_id, None ) ;
135
137
136
- assert_eq ! (
138
+ assert_eq_text ! (
137
139
syn. trim( ) ,
138
140
r#"
139
141
SOURCE_FILE@[0; 60)
140
142
FN_DEF@[0; 60)
141
- FN_KW@[0; 2)
142
- WHITESPACE@[2; 3)
143
+ FN_KW@[0; 2) "fn"
144
+ WHITESPACE@[2; 3) " "
143
145
NAME@[3; 7)
144
146
IDENT@[3; 7) "test"
145
147
PARAM_LIST@[7; 9)
146
- L_PAREN@[7; 8)
147
- R_PAREN@[8; 9)
148
- WHITESPACE@[9; 10)
148
+ L_PAREN@[7; 8) "("
149
+ R_PAREN@[8; 9) ")"
150
+ WHITESPACE@[9; 10) " "
149
151
BLOCK@[10; 60)
150
- L_CURLY@[10; 11)
151
- WHITESPACE@[11; 16)
152
+ L_CURLY@[10; 11) "{"
153
+ WHITESPACE@[11; 16) "\n "
152
154
EXPR_STMT@[16; 58)
153
155
MACRO_CALL@[16; 57)
154
156
PATH@[16; 22)
155
157
PATH_SEGMENT@[16; 22)
156
158
NAME_REF@[16; 22)
157
159
IDENT@[16; 22) "assert"
158
- EXCL@[22; 23)
160
+ EXCL@[22; 23) "!"
159
161
TOKEN_TREE@[23; 57)
160
- L_PAREN@[23; 24)
161
- STRING@[24; 52)
162
- COMMA@[52; 53)
163
- WHITESPACE@[53; 54)
164
- STRING@[54; 56)
165
- R_PAREN@[56; 57)
166
- SEMI@[57; 58)
167
- WHITESPACE@[58; 59)
168
- R_CURLY@[59; 60)
169
- "#
162
+ L_PAREN@[23; 24) "("
163
+ STRING@[24; 52) "\"\n fn foo() {\n ..."
164
+ COMMA@[52; 53) ","
165
+ WHITESPACE@[53; 54) " "
166
+ STRING@[54; 56) "\"\""
167
+ R_PAREN@[56; 57) ")"
168
+ SEMI@[57; 58) ";"
169
+ WHITESPACE@[58; 59) "\n"
170
+ R_CURLY@[59; 60) "}"
171
+ "#
170
172
. trim( )
171
173
) ;
172
174
}
@@ -176,22 +178,22 @@ SOURCE_FILE@[0; 60)
176
178
let ( analysis, range) = single_file_with_range ( r#"<|>fn foo() {}<|>"# . trim ( ) ) ;
177
179
let syn = analysis. syntax_tree ( range. file_id , Some ( range. range ) ) ;
178
180
179
- assert_eq ! (
181
+ assert_eq_text ! (
180
182
syn. trim( ) ,
181
183
r#"
182
184
FN_DEF@[0; 11)
183
- FN_KW@[0; 2)
184
- WHITESPACE@[2; 3)
185
+ FN_KW@[0; 2) "fn"
186
+ WHITESPACE@[2; 3) " "
185
187
NAME@[3; 6)
186
188
IDENT@[3; 6) "foo"
187
189
PARAM_LIST@[6; 8)
188
- L_PAREN@[6; 7)
189
- R_PAREN@[7; 8)
190
- WHITESPACE@[8; 9)
190
+ L_PAREN@[6; 7) "("
191
+ R_PAREN@[7; 8) ")"
192
+ WHITESPACE@[8; 9) " "
191
193
BLOCK@[9; 11)
192
- L_CURLY@[9; 10)
193
- R_CURLY@[10; 11)
194
- "#
194
+ L_CURLY@[9; 10) "{"
195
+ R_CURLY@[10; 11) "}"
196
+ "#
195
197
. trim( )
196
198
) ;
197
199
@@ -206,7 +208,7 @@ FN_DEF@[0; 11)
206
208
) ;
207
209
let syn = analysis. syntax_tree ( range. file_id , Some ( range. range ) ) ;
208
210
209
- assert_eq ! (
211
+ assert_eq_text ! (
210
212
syn. trim( ) ,
211
213
r#"
212
214
EXPR_STMT@[16; 58)
@@ -215,16 +217,16 @@ EXPR_STMT@[16; 58)
215
217
PATH_SEGMENT@[16; 22)
216
218
NAME_REF@[16; 22)
217
219
IDENT@[16; 22) "assert"
218
- EXCL@[22; 23)
220
+ EXCL@[22; 23) "!"
219
221
TOKEN_TREE@[23; 57)
220
- L_PAREN@[23; 24)
221
- STRING@[24; 52)
222
- COMMA@[52; 53)
223
- WHITESPACE@[53; 54)
224
- STRING@[54; 56)
225
- R_PAREN@[56; 57)
226
- SEMI@[57; 58)
227
- "#
222
+ L_PAREN@[23; 24) "("
223
+ STRING@[24; 52) "\"\n fn foo() {\n ..."
224
+ COMMA@[52; 53) ","
225
+ WHITESPACE@[53; 54) " "
226
+ STRING@[54; 56) "\"\""
227
+ R_PAREN@[56; 57) ")"
228
+ SEMI@[57; 58) ";"
229
+ "#
228
230
. trim( )
229
231
) ;
230
232
}
@@ -243,23 +245,23 @@ fn bar() {
243
245
. trim ( ) ,
244
246
) ;
245
247
let syn = analysis. syntax_tree ( range. file_id , Some ( range. range ) ) ;
246
- assert_eq ! (
248
+ assert_eq_text ! (
247
249
syn. trim( ) ,
248
250
r#"
249
251
SOURCE_FILE@[0; 12)
250
252
FN_DEF@[0; 12)
251
- FN_KW@[0; 2)
252
- WHITESPACE@[2; 3)
253
+ FN_KW@[0; 2) "fn"
254
+ WHITESPACE@[2; 3) " "
253
255
NAME@[3; 6)
254
256
IDENT@[3; 6) "foo"
255
257
PARAM_LIST@[6; 8)
256
- L_PAREN@[6; 7)
257
- R_PAREN@[7; 8)
258
- WHITESPACE@[8; 9)
258
+ L_PAREN@[6; 7) "("
259
+ R_PAREN@[7; 8) ")"
260
+ WHITESPACE@[8; 9) " "
259
261
BLOCK@[9; 12)
260
- L_CURLY@[9; 10)
261
- WHITESPACE@[10; 11)
262
- R_CURLY@[11; 12)
262
+ L_CURLY@[9; 10) "{"
263
+ WHITESPACE@[10; 11) "\n"
264
+ R_CURLY@[11; 12) "}"
263
265
"#
264
266
. trim( )
265
267
) ;
@@ -277,23 +279,23 @@ fn bar() {
277
279
. trim ( ) ,
278
280
) ;
279
281
let syn = analysis. syntax_tree ( range. file_id , Some ( range. range ) ) ;
280
- assert_eq ! (
282
+ assert_eq_text ! (
281
283
syn. trim( ) ,
282
284
r#"
283
285
SOURCE_FILE@[0; 12)
284
286
FN_DEF@[0; 12)
285
- FN_KW@[0; 2)
286
- WHITESPACE@[2; 3)
287
+ FN_KW@[0; 2) "fn"
288
+ WHITESPACE@[2; 3) " "
287
289
NAME@[3; 6)
288
290
IDENT@[3; 6) "foo"
289
291
PARAM_LIST@[6; 8)
290
- L_PAREN@[6; 7)
291
- R_PAREN@[7; 8)
292
- WHITESPACE@[8; 9)
292
+ L_PAREN@[6; 7) "("
293
+ R_PAREN@[7; 8) ")"
294
+ WHITESPACE@[8; 9) " "
293
295
BLOCK@[9; 12)
294
- L_CURLY@[9; 10)
295
- WHITESPACE@[10; 11)
296
- R_CURLY@[11; 12)
296
+ L_CURLY@[9; 10) "{"
297
+ WHITESPACE@[10; 11) "\n"
298
+ R_CURLY@[11; 12) "}"
297
299
"#
298
300
. trim( )
299
301
) ;
@@ -310,38 +312,37 @@ fn bar() {
310
312
. trim ( ) ,
311
313
) ;
312
314
let syn = analysis. syntax_tree ( range. file_id , Some ( range. range ) ) ;
313
- assert_eq ! (
315
+ assert_eq_text ! (
314
316
syn. trim( ) ,
315
317
r#"
316
318
SOURCE_FILE@[0; 25)
317
319
FN_DEF@[0; 12)
318
- FN_KW@[0; 2)
319
- WHITESPACE@[2; 3)
320
+ FN_KW@[0; 2) "fn"
321
+ WHITESPACE@[2; 3) " "
320
322
NAME@[3; 6)
321
323
IDENT@[3; 6) "foo"
322
324
PARAM_LIST@[6; 8)
323
- L_PAREN@[6; 7)
324
- R_PAREN@[7; 8)
325
- WHITESPACE@[8; 9)
325
+ L_PAREN@[6; 7) "("
326
+ R_PAREN@[7; 8) ")"
327
+ WHITESPACE@[8; 9) " "
326
328
BLOCK@[9; 12)
327
- L_CURLY@[9; 10)
328
- WHITESPACE@[10; 11)
329
- R_CURLY@[11; 12)
330
- WHITESPACE@[12; 13)
329
+ L_CURLY@[9; 10) "{"
330
+ WHITESPACE@[10; 11) "\n"
331
+ R_CURLY@[11; 12) "}"
332
+ WHITESPACE@[12; 13) "\n"
331
333
FN_DEF@[13; 25)
332
- FN_KW@[13; 15)
333
- WHITESPACE@[15; 16)
334
+ FN_KW@[13; 15) "fn"
335
+ WHITESPACE@[15; 16) " "
334
336
NAME@[16; 19)
335
337
IDENT@[16; 19) "bar"
336
338
PARAM_LIST@[19; 21)
337
- L_PAREN@[19; 20)
338
- R_PAREN@[20; 21)
339
- WHITESPACE@[21; 22)
339
+ L_PAREN@[19; 20) "("
340
+ R_PAREN@[20; 21) ")"
341
+ WHITESPACE@[21; 22) " "
340
342
BLOCK@[22; 25)
341
- L_CURLY@[22; 23)
342
- WHITESPACE@[23; 24)
343
- R_CURLY@[24; 25)
344
-
343
+ L_CURLY@[22; 23) "{"
344
+ WHITESPACE@[23; 24) "\n"
345
+ R_CURLY@[24; 25) "}"
345
346
"#
346
347
. trim( )
347
348
) ;
0 commit comments