aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_syntax
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_syntax')
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0144_dot_dot_pat.rs25
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0144_dot_dot_pat.txt456
2 files changed, 481 insertions, 0 deletions
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0144_dot_dot_pat.rs b/crates/ra_syntax/test_data/parser/inline/ok/0144_dot_dot_pat.rs
new file mode 100644
index 000000000..3262f27e1
--- /dev/null
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0144_dot_dot_pat.rs
@@ -0,0 +1,25 @@
1fn main() {
2 let .. = ();
3 //
4 // Tuples
5 //
6 let (a, ..) = ();
7 let (a, ..,) = ();
8 let Tuple(a, ..) = ();
9 let Tuple(a, ..,) = ();
10 let (.., ..) = ();
11 let Tuple(.., ..) = ();
12 let (.., a, ..) = ();
13 let Tuple(.., a, ..) = ();
14 //
15 // Slices
16 //
17 let [..] = ();
18 let [head, ..] = ();
19 let [head, tail @ ..] = ();
20 let [head, .., cons] = ();
21 let [head, mid @ .., cons] = ();
22 let [head, .., .., cons] = ();
23 let [head, .., mid, tail @ ..] = ();
24 let [head, .., mid, .., cons] = ();
25}
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0144_dot_dot_pat.txt b/crates/ra_syntax/test_data/parser/inline/ok/0144_dot_dot_pat.txt
new file mode 100644
index 000000000..325b1bd08
--- /dev/null
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0144_dot_dot_pat.txt
@@ -0,0 +1,456 @@
1SOURCE_FILE@[0; 555)
2 FN_DEF@[0; 554)
3 FN_KW@[0; 2) "fn"
4 WHITESPACE@[2; 3) " "
5 NAME@[3; 7)
6 IDENT@[3; 7) "main"
7 PARAM_LIST@[7; 9)
8 L_PAREN@[7; 8) "("
9 R_PAREN@[8; 9) ")"
10 WHITESPACE@[9; 10) " "
11 BLOCK_EXPR@[10; 554)
12 BLOCK@[10; 554)
13 L_CURLY@[10; 11) "{"
14 WHITESPACE@[11; 16) "\n "
15 LET_STMT@[16; 28)
16 LET_KW@[16; 19) "let"
17 WHITESPACE@[19; 20) " "
18 DOT_DOT_PAT@[20; 22)
19 DOTDOT@[20; 22) ".."
20 WHITESPACE@[22; 23) " "
21 EQ@[23; 24) "="
22 WHITESPACE@[24; 25) " "
23 TUPLE_EXPR@[25; 27)
24 L_PAREN@[25; 26) "("
25 R_PAREN@[26; 27) ")"
26 SEMI@[27; 28) ";"
27 WHITESPACE@[28; 33) "\n "
28 COMMENT@[33; 35) "//"
29 WHITESPACE@[35; 40) "\n "
30 COMMENT@[40; 49) "// Tuples"
31 WHITESPACE@[49; 54) "\n "
32 COMMENT@[54; 56) "//"
33 WHITESPACE@[56; 61) "\n "
34 LET_STMT@[61; 78)
35 LET_KW@[61; 64) "let"
36 WHITESPACE@[64; 65) " "
37 TUPLE_PAT@[65; 72)
38 L_PAREN@[65; 66) "("
39 BIND_PAT@[66; 67)
40 NAME@[66; 67)
41 IDENT@[66; 67) "a"
42 COMMA@[67; 68) ","
43 WHITESPACE@[68; 69) " "
44 DOT_DOT_PAT@[69; 71)
45 DOTDOT@[69; 71) ".."
46 R_PAREN@[71; 72) ")"
47 WHITESPACE@[72; 73) " "
48 EQ@[73; 74) "="
49 WHITESPACE@[74; 75) " "
50 TUPLE_EXPR@[75; 77)
51 L_PAREN@[75; 76) "("
52 R_PAREN@[76; 77) ")"
53 SEMI@[77; 78) ";"
54 WHITESPACE@[78; 83) "\n "
55 LET_STMT@[83; 101)
56 LET_KW@[83; 86) "let"
57 WHITESPACE@[86; 87) " "
58 TUPLE_PAT@[87; 95)
59 L_PAREN@[87; 88) "("
60 BIND_PAT@[88; 89)
61 NAME@[88; 89)
62 IDENT@[88; 89) "a"
63 COMMA@[89; 90) ","
64 WHITESPACE@[90; 91) " "
65 DOT_DOT_PAT@[91; 93)
66 DOTDOT@[91; 93) ".."
67 COMMA@[93; 94) ","
68 R_PAREN@[94; 95) ")"
69 WHITESPACE@[95; 96) " "
70 EQ@[96; 97) "="
71 WHITESPACE@[97; 98) " "
72 TUPLE_EXPR@[98; 100)
73 L_PAREN@[98; 99) "("
74 R_PAREN@[99; 100) ")"
75 SEMI@[100; 101) ";"
76 WHITESPACE@[101; 106) "\n "
77 LET_STMT@[106; 128)
78 LET_KW@[106; 109) "let"
79 WHITESPACE@[109; 110) " "
80 TUPLE_STRUCT_PAT@[110; 122)
81 PATH@[110; 115)
82 PATH_SEGMENT@[110; 115)
83 NAME_REF@[110; 115)
84 IDENT@[110; 115) "Tuple"
85 L_PAREN@[115; 116) "("
86 BIND_PAT@[116; 117)
87 NAME@[116; 117)
88 IDENT@[116; 117) "a"
89 COMMA@[117; 118) ","
90 WHITESPACE@[118; 119) " "
91 DOT_DOT_PAT@[119; 121)
92 DOTDOT@[119; 121) ".."
93 R_PAREN@[121; 122) ")"
94 WHITESPACE@[122; 123) " "
95 EQ@[123; 124) "="
96 WHITESPACE@[124; 125) " "
97 TUPLE_EXPR@[125; 127)
98 L_PAREN@[125; 126) "("
99 R_PAREN@[126; 127) ")"
100 SEMI@[127; 128) ";"
101 WHITESPACE@[128; 133) "\n "
102 LET_STMT@[133; 156)
103 LET_KW@[133; 136) "let"
104 WHITESPACE@[136; 137) " "
105 TUPLE_STRUCT_PAT@[137; 150)
106 PATH@[137; 142)
107 PATH_SEGMENT@[137; 142)
108 NAME_REF@[137; 142)
109 IDENT@[137; 142) "Tuple"
110 L_PAREN@[142; 143) "("
111 BIND_PAT@[143; 144)
112 NAME@[143; 144)
113 IDENT@[143; 144) "a"
114 COMMA@[144; 145) ","
115 WHITESPACE@[145; 146) " "
116 DOT_DOT_PAT@[146; 148)
117 DOTDOT@[146; 148) ".."
118 COMMA@[148; 149) ","
119 R_PAREN@[149; 150) ")"
120 WHITESPACE@[150; 151) " "
121 EQ@[151; 152) "="
122 WHITESPACE@[152; 153) " "
123 TUPLE_EXPR@[153; 155)
124 L_PAREN@[153; 154) "("
125 R_PAREN@[154; 155) ")"
126 SEMI@[155; 156) ";"
127 WHITESPACE@[156; 161) "\n "
128 LET_STMT@[161; 179)
129 LET_KW@[161; 164) "let"
130 WHITESPACE@[164; 165) " "
131 TUPLE_PAT@[165; 173)
132 L_PAREN@[165; 166) "("
133 DOT_DOT_PAT@[166; 168)
134 DOTDOT@[166; 168) ".."
135 COMMA@[168; 169) ","
136 WHITESPACE@[169; 170) " "
137 DOT_DOT_PAT@[170; 172)
138 DOTDOT@[170; 172) ".."
139 R_PAREN@[172; 173) ")"
140 WHITESPACE@[173; 174) " "
141 EQ@[174; 175) "="
142 WHITESPACE@[175; 176) " "
143 TUPLE_EXPR@[176; 178)
144 L_PAREN@[176; 177) "("
145 R_PAREN@[177; 178) ")"
146 SEMI@[178; 179) ";"
147 WHITESPACE@[179; 184) "\n "
148 LET_STMT@[184; 207)
149 LET_KW@[184; 187) "let"
150 WHITESPACE@[187; 188) " "
151 TUPLE_STRUCT_PAT@[188; 201)
152 PATH@[188; 193)
153 PATH_SEGMENT@[188; 193)
154 NAME_REF@[188; 193)
155 IDENT@[188; 193) "Tuple"
156 L_PAREN@[193; 194) "("
157 DOT_DOT_PAT@[194; 196)
158 DOTDOT@[194; 196) ".."
159 COMMA@[196; 197) ","
160 WHITESPACE@[197; 198) " "
161 DOT_DOT_PAT@[198; 200)
162 DOTDOT@[198; 200) ".."
163 R_PAREN@[200; 201) ")"
164 WHITESPACE@[201; 202) " "
165 EQ@[202; 203) "="
166 WHITESPACE@[203; 204) " "
167 TUPLE_EXPR@[204; 206)
168 L_PAREN@[204; 205) "("
169 R_PAREN@[205; 206) ")"
170 SEMI@[206; 207) ";"
171 WHITESPACE@[207; 212) "\n "
172 LET_STMT@[212; 233)
173 LET_KW@[212; 215) "let"
174 WHITESPACE@[215; 216) " "
175 TUPLE_PAT@[216; 227)
176 L_PAREN@[216; 217) "("
177 DOT_DOT_PAT@[217; 219)
178 DOTDOT@[217; 219) ".."
179 COMMA@[219; 220) ","
180 WHITESPACE@[220; 221) " "
181 BIND_PAT@[221; 222)
182 NAME@[221; 222)
183 IDENT@[221; 222) "a"
184 COMMA@[222; 223) ","
185 WHITESPACE@[223; 224) " "
186 DOT_DOT_PAT@[224; 226)
187 DOTDOT@[224; 226) ".."
188 R_PAREN@[226; 227) ")"
189 WHITESPACE@[227; 228) " "
190 EQ@[228; 229) "="
191 WHITESPACE@[229; 230) " "
192 TUPLE_EXPR@[230; 232)
193 L_PAREN@[230; 231) "("
194 R_PAREN@[231; 232) ")"
195 SEMI@[232; 233) ";"
196 WHITESPACE@[233; 238) "\n "
197 LET_STMT@[238; 264)
198 LET_KW@[238; 241) "let"
199 WHITESPACE@[241; 242) " "
200 TUPLE_STRUCT_PAT@[242; 258)
201 PATH@[242; 247)
202 PATH_SEGMENT@[242; 247)
203 NAME_REF@[242; 247)
204 IDENT@[242; 247) "Tuple"
205 L_PAREN@[247; 248) "("
206 DOT_DOT_PAT@[248; 250)
207 DOTDOT@[248; 250) ".."
208 COMMA@[250; 251) ","
209 WHITESPACE@[251; 252) " "
210 BIND_PAT@[252; 253)
211 NAME@[252; 253)
212 IDENT@[252; 253) "a"
213 COMMA@[253; 254) ","
214 WHITESPACE@[254; 255) " "
215 DOT_DOT_PAT@[255; 257)
216 DOTDOT@[255; 257) ".."
217 R_PAREN@[257; 258) ")"
218 WHITESPACE@[258; 259) " "
219 EQ@[259; 260) "="
220 WHITESPACE@[260; 261) " "
221 TUPLE_EXPR@[261; 263)
222 L_PAREN@[261; 262) "("
223 R_PAREN@[262; 263) ")"
224 SEMI@[263; 264) ";"
225 WHITESPACE@[264; 269) "\n "
226 COMMENT@[269; 271) "//"
227 WHITESPACE@[271; 276) "\n "
228 COMMENT@[276; 285) "// Slices"
229 WHITESPACE@[285; 290) "\n "
230 COMMENT@[290; 292) "//"
231 WHITESPACE@[292; 297) "\n "
232 LET_STMT@[297; 311)
233 LET_KW@[297; 300) "let"
234 WHITESPACE@[300; 301) " "
235 SLICE_PAT@[301; 305)
236 L_BRACK@[301; 302) "["
237 DOT_DOT_PAT@[302; 304)
238 DOTDOT@[302; 304) ".."
239 R_BRACK@[304; 305) "]"
240 WHITESPACE@[305; 306) " "
241 EQ@[306; 307) "="
242 WHITESPACE@[307; 308) " "
243 TUPLE_EXPR@[308; 310)
244 L_PAREN@[308; 309) "("
245 R_PAREN@[309; 310) ")"
246 SEMI@[310; 311) ";"
247 WHITESPACE@[311; 316) "\n "
248 LET_STMT@[316; 336)
249 LET_KW@[316; 319) "let"
250 WHITESPACE@[319; 320) " "
251 SLICE_PAT@[320; 330)
252 L_BRACK@[320; 321) "["
253 BIND_PAT@[321; 325)
254 NAME@[321; 325)
255 IDENT@[321; 325) "head"
256 COMMA@[325; 326) ","
257 WHITESPACE@[326; 327) " "
258 DOT_DOT_PAT@[327; 329)
259 DOTDOT@[327; 329) ".."
260 R_BRACK@[329; 330) "]"
261 WHITESPACE@[330; 331) " "
262 EQ@[331; 332) "="
263 WHITESPACE@[332; 333) " "
264 TUPLE_EXPR@[333; 335)
265 L_PAREN@[333; 334) "("
266 R_PAREN@[334; 335) ")"
267 SEMI@[335; 336) ";"
268 WHITESPACE@[336; 341) "\n "
269 LET_STMT@[341; 368)
270 LET_KW@[341; 344) "let"
271 WHITESPACE@[344; 345) " "
272 SLICE_PAT@[345; 362)
273 L_BRACK@[345; 346) "["
274 BIND_PAT@[346; 350)
275 NAME@[346; 350)
276 IDENT@[346; 350) "head"
277 COMMA@[350; 351) ","
278 WHITESPACE@[351; 352) " "
279 BIND_PAT@[352; 361)
280 NAME@[352; 356)
281 IDENT@[352; 356) "tail"
282 WHITESPACE@[356; 357) " "
283 AT@[357; 358) "@"
284 WHITESPACE@[358; 359) " "
285 DOT_DOT_PAT@[359; 361)
286 DOTDOT@[359; 361) ".."
287 R_BRACK@[361; 362) "]"
288 WHITESPACE@[362; 363) " "
289 EQ@[363; 364) "="
290 WHITESPACE@[364; 365) " "
291 TUPLE_EXPR@[365; 367)
292 L_PAREN@[365; 366) "("
293 R_PAREN@[366; 367) ")"
294 SEMI@[367; 368) ";"
295 WHITESPACE@[368; 373) "\n "
296 LET_STMT@[373; 399)
297 LET_KW@[373; 376) "let"
298 WHITESPACE@[376; 377) " "
299 SLICE_PAT@[377; 393)
300 L_BRACK@[377; 378) "["
301 BIND_PAT@[378; 382)
302 NAME@[378; 382)
303 IDENT@[378; 382) "head"
304 COMMA@[382; 383) ","
305 WHITESPACE@[383; 384) " "
306 DOT_DOT_PAT@[384; 386)
307 DOTDOT@[384; 386) ".."
308 COMMA@[386; 387) ","
309 WHITESPACE@[387; 388) " "
310 BIND_PAT@[388; 392)
311 NAME@[388; 392)
312 IDENT@[388; 392) "cons"
313 R_BRACK@[392; 393) "]"
314 WHITESPACE@[393; 394) " "
315 EQ@[394; 395) "="
316 WHITESPACE@[395; 396) " "
317 TUPLE_EXPR@[396; 398)
318 L_PAREN@[396; 397) "("
319 R_PAREN@[397; 398) ")"
320 SEMI@[398; 399) ";"
321 WHITESPACE@[399; 404) "\n "
322 LET_STMT@[404; 436)
323 LET_KW@[404; 407) "let"
324 WHITESPACE@[407; 408) " "
325 SLICE_PAT@[408; 430)
326 L_BRACK@[408; 409) "["
327 BIND_PAT@[409; 413)
328 NAME@[409; 413)
329 IDENT@[409; 413) "head"
330 COMMA@[413; 414) ","
331 WHITESPACE@[414; 415) " "
332 BIND_PAT@[415; 423)
333 NAME@[415; 418)
334 IDENT@[415; 418) "mid"
335 WHITESPACE@[418; 419) " "
336 AT@[419; 420) "@"
337 WHITESPACE@[420; 421) " "
338 DOT_DOT_PAT@[421; 423)
339 DOTDOT@[421; 423) ".."
340 COMMA@[423; 424) ","
341 WHITESPACE@[424; 425) " "
342 BIND_PAT@[425; 429)
343 NAME@[425; 429)
344 IDENT@[425; 429) "cons"
345 R_BRACK@[429; 430) "]"
346 WHITESPACE@[430; 431) " "
347 EQ@[431; 432) "="
348 WHITESPACE@[432; 433) " "
349 TUPLE_EXPR@[433; 435)
350 L_PAREN@[433; 434) "("
351 R_PAREN@[434; 435) ")"
352 SEMI@[435; 436) ";"
353 WHITESPACE@[436; 441) "\n "
354 LET_STMT@[441; 471)
355 LET_KW@[441; 444) "let"
356 WHITESPACE@[444; 445) " "
357 SLICE_PAT@[445; 465)
358 L_BRACK@[445; 446) "["
359 BIND_PAT@[446; 450)
360 NAME@[446; 450)
361 IDENT@[446; 450) "head"
362 COMMA@[450; 451) ","
363 WHITESPACE@[451; 452) " "
364 DOT_DOT_PAT@[452; 454)
365 DOTDOT@[452; 454) ".."
366 COMMA@[454; 455) ","
367 WHITESPACE@[455; 456) " "
368 DOT_DOT_PAT@[456; 458)
369 DOTDOT@[456; 458) ".."
370 COMMA@[458; 459) ","
371 WHITESPACE@[459; 460) " "
372 BIND_PAT@[460; 464)
373 NAME@[460; 464)
374 IDENT@[460; 464) "cons"
375 R_BRACK@[464; 465) "]"
376 WHITESPACE@[465; 466) " "
377 EQ@[466; 467) "="
378 WHITESPACE@[467; 468) " "
379 TUPLE_EXPR@[468; 470)
380 L_PAREN@[468; 469) "("
381 R_PAREN@[469; 470) ")"
382 SEMI@[470; 471) ";"
383 WHITESPACE@[471; 476) "\n "
384 LET_STMT@[476; 512)
385 LET_KW@[476; 479) "let"
386 WHITESPACE@[479; 480) " "
387 SLICE_PAT@[480; 506)
388 L_BRACK@[480; 481) "["
389 BIND_PAT@[481; 485)
390 NAME@[481; 485)
391 IDENT@[481; 485) "head"
392 COMMA@[485; 486) ","
393 WHITESPACE@[486; 487) " "
394 DOT_DOT_PAT@[487; 489)
395 DOTDOT@[487; 489) ".."
396 COMMA@[489; 490) ","
397 WHITESPACE@[490; 491) " "
398 BIND_PAT@[491; 494)
399 NAME@[491; 494)
400 IDENT@[491; 494) "mid"
401 COMMA@[494; 495) ","
402 WHITESPACE@[495; 496) " "
403 BIND_PAT@[496; 505)
404 NAME@[496; 500)
405 IDENT@[496; 500) "tail"
406 WHITESPACE@[500; 501) " "
407 AT@[501; 502) "@"
408 WHITESPACE@[502; 503) " "
409 DOT_DOT_PAT@[503; 505)
410 DOTDOT@[503; 505) ".."
411 R_BRACK@[505; 506) "]"
412 WHITESPACE@[506; 507) " "
413 EQ@[507; 508) "="
414 WHITESPACE@[508; 509) " "
415 TUPLE_EXPR@[509; 511)
416 L_PAREN@[509; 510) "("
417 R_PAREN@[510; 511) ")"
418 SEMI@[511; 512) ";"
419 WHITESPACE@[512; 517) "\n "
420 LET_STMT@[517; 552)
421 LET_KW@[517; 520) "let"
422 WHITESPACE@[520; 521) " "
423 SLICE_PAT@[521; 546)
424 L_BRACK@[521; 522) "["
425 BIND_PAT@[522; 526)
426 NAME@[522; 526)
427 IDENT@[522; 526) "head"
428 COMMA@[526; 527) ","
429 WHITESPACE@[527; 528) " "
430 DOT_DOT_PAT@[528; 530)
431 DOTDOT@[528; 530) ".."
432 COMMA@[530; 531) ","
433 WHITESPACE@[531; 532) " "
434 BIND_PAT@[532; 535)
435 NAME@[532; 535)
436 IDENT@[532; 535) "mid"
437 COMMA@[535; 536) ","
438 WHITESPACE@[536; 537) " "
439 DOT_DOT_PAT@[537; 539)
440 DOTDOT@[537; 539) ".."
441 COMMA@[539; 540) ","
442 WHITESPACE@[540; 541) " "
443 BIND_PAT@[541; 545)
444 NAME@[541; 545)
445 IDENT@[541; 545) "cons"
446 R_BRACK@[545; 546) "]"
447 WHITESPACE@[546; 547) " "
448 EQ@[547; 548) "="
449 WHITESPACE@[548; 549) " "
450 TUPLE_EXPR@[549; 551)
451 L_PAREN@[549; 550) "("
452 R_PAREN@[550; 551) ")"
453 SEMI@[551; 552) ";"
454 WHITESPACE@[552; 553) "\n"
455 R_CURLY@[553; 554) "}"
456 WHITESPACE@[554; 555) "\n"