aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_syntax/test_data/parser/ok/0051_parameter_attrs.rast
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_syntax/test_data/parser/ok/0051_parameter_attrs.rast')
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0051_parameter_attrs.rast519
1 files changed, 519 insertions, 0 deletions
diff --git a/crates/ra_syntax/test_data/parser/ok/0051_parameter_attrs.rast b/crates/ra_syntax/test_data/parser/ok/0051_parameter_attrs.rast
new file mode 100644
index 000000000..254eafc36
--- /dev/null
+++ b/crates/ra_syntax/test_data/parser/ok/0051_parameter_attrs.rast
@@ -0,0 +1,519 @@
1SOURCE_FILE@[0; 519)
2 FN_DEF@[0; 37)
3 FN_KW@[0; 2) "fn"
4 WHITESPACE@[2; 3) " "
5 NAME@[3; 5)
6 IDENT@[3; 5) "g1"
7 PARAM_LIST@[5; 34)
8 L_PAREN@[5; 6) "("
9 ATTR@[6; 14)
10 POUND@[6; 7) "#"
11 L_BRACK@[7; 8) "["
12 PATH@[8; 13)
13 PATH_SEGMENT@[8; 13)
14 NAME_REF@[8; 13)
15 IDENT@[8; 13) "attr1"
16 R_BRACK@[13; 14) "]"
17 WHITESPACE@[14; 15) " "
18 ATTR@[15; 23)
19 POUND@[15; 16) "#"
20 L_BRACK@[16; 17) "["
21 PATH@[17; 22)
22 PATH_SEGMENT@[17; 22)
23 NAME_REF@[17; 22)
24 IDENT@[17; 22) "attr2"
25 R_BRACK@[22; 23) "]"
26 WHITESPACE@[23; 24) " "
27 PARAM@[24; 33)
28 BIND_PAT@[24; 27)
29 NAME@[24; 27)
30 IDENT@[24; 27) "pat"
31 COLON@[27; 28) ":"
32 WHITESPACE@[28; 29) " "
33 PATH_TYPE@[29; 33)
34 PATH@[29; 33)
35 PATH_SEGMENT@[29; 33)
36 NAME_REF@[29; 33)
37 IDENT@[29; 33) "Type"
38 R_PAREN@[33; 34) ")"
39 WHITESPACE@[34; 35) " "
40 BLOCK_EXPR@[35; 37)
41 BLOCK@[35; 37)
42 L_CURLY@[35; 36) "{"
43 R_CURLY@[36; 37) "}"
44 WHITESPACE@[37; 38) "\n"
45 FN_DEF@[38; 62)
46 FN_KW@[38; 40) "fn"
47 WHITESPACE@[40; 41) " "
48 NAME@[41; 43)
49 IDENT@[41; 43) "g2"
50 PARAM_LIST@[43; 59)
51 L_PAREN@[43; 44) "("
52 ATTR@[44; 52)
53 POUND@[44; 45) "#"
54 L_BRACK@[45; 46) "["
55 PATH@[46; 51)
56 PATH_SEGMENT@[46; 51)
57 NAME_REF@[46; 51)
58 IDENT@[46; 51) "attr1"
59 R_BRACK@[51; 52) "]"
60 WHITESPACE@[52; 53) " "
61 PARAM@[53; 58)
62 BIND_PAT@[53; 54)
63 NAME@[53; 54)
64 IDENT@[53; 54) "x"
65 COLON@[54; 55) ":"
66 WHITESPACE@[55; 56) " "
67 PATH_TYPE@[56; 58)
68 PATH@[56; 58)
69 PATH_SEGMENT@[56; 58)
70 NAME_REF@[56; 58)
71 IDENT@[56; 58) "u8"
72 R_PAREN@[58; 59) ")"
73 WHITESPACE@[59; 60) " "
74 BLOCK_EXPR@[60; 62)
75 BLOCK@[60; 62)
76 L_CURLY@[60; 61) "{"
77 R_CURLY@[61; 62) "}"
78 WHITESPACE@[62; 64) "\n\n"
79 EXTERN_BLOCK@[64; 128)
80 ABI@[64; 74)
81 EXTERN_KW@[64; 70) "extern"
82 WHITESPACE@[70; 71) " "
83 STRING@[71; 74) "\"C\""
84 WHITESPACE@[74; 75) " "
85 EXTERN_ITEM_LIST@[75; 128)
86 L_CURLY@[75; 76) "{"
87 WHITESPACE@[76; 77) " "
88 FN_DEF@[77; 126)
89 FN_KW@[77; 79) "fn"
90 WHITESPACE@[79; 80) " "
91 NAME@[80; 86)
92 IDENT@[80; 86) "printf"
93 PARAM_LIST@[86; 118)
94 L_PAREN@[86; 87) "("
95 PARAM@[87; 104)
96 BIND_PAT@[87; 93)
97 NAME@[87; 93)
98 IDENT@[87; 93) "format"
99 COLON@[93; 94) ":"
100 WHITESPACE@[94; 95) " "
101 POINTER_TYPE@[95; 104)
102 STAR@[95; 96) "*"
103 CONST_KW@[96; 101) "const"
104 WHITESPACE@[101; 102) " "
105 PATH_TYPE@[102; 104)
106 PATH@[102; 104)
107 PATH_SEGMENT@[102; 104)
108 NAME_REF@[102; 104)
109 IDENT@[102; 104) "i8"
110 COMMA@[104; 105) ","
111 WHITESPACE@[105; 106) " "
112 ATTR@[106; 113)
113 POUND@[106; 107) "#"
114 L_BRACK@[107; 108) "["
115 PATH@[108; 112)
116 PATH_SEGMENT@[108; 112)
117 NAME_REF@[108; 112)
118 IDENT@[108; 112) "attr"
119 R_BRACK@[112; 113) "]"
120 WHITESPACE@[113; 114) " "
121 PARAM@[114; 117)
122 DOTDOTDOT@[114; 117) "..."
123 R_PAREN@[117; 118) ")"
124 WHITESPACE@[118; 119) " "
125 RET_TYPE@[119; 125)
126 THIN_ARROW@[119; 121) "->"
127 WHITESPACE@[121; 122) " "
128 PATH_TYPE@[122; 125)
129 PATH@[122; 125)
130 PATH_SEGMENT@[122; 125)
131 NAME_REF@[122; 125)
132 IDENT@[122; 125) "i32"
133 SEMI@[125; 126) ";"
134 WHITESPACE@[126; 127) " "
135 R_CURLY@[127; 128) "}"
136 WHITESPACE@[128; 130) "\n\n"
137 FN_DEF@[130; 172)
138 FN_KW@[130; 132) "fn"
139 WHITESPACE@[132; 133) " "
140 NAME@[133; 136)
141 IDENT@[133; 136) "foo"
142 TYPE_PARAM_LIST@[136; 168)
143 L_ANGLE@[136; 137) "<"
144 TYPE_PARAM@[137; 167)
145 NAME@[137; 138)
146 IDENT@[137; 138) "F"
147 COLON@[138; 139) ":"
148 WHITESPACE@[139; 140) " "
149 TYPE_BOUND_LIST@[140; 167)
150 TYPE_BOUND@[140; 167)
151 PATH_TYPE@[140; 167)
152 PATH@[140; 167)
153 PATH_SEGMENT@[140; 167)
154 NAME_REF@[140; 145)
155 IDENT@[140; 145) "FnMut"
156 PARAM_LIST@[145; 167)
157 L_PAREN@[145; 146) "("
158 ATTR@[146; 153)
159 POUND@[146; 147) "#"
160 L_BRACK@[147; 148) "["
161 PATH@[148; 152)
162 PATH_SEGMENT@[148; 152)
163 NAME_REF@[148; 152)
164 IDENT@[148; 152) "attr"
165 R_BRACK@[152; 153) "]"
166 WHITESPACE@[153; 154) " "
167 PARAM@[154; 166)
168 REFERENCE_TYPE@[154; 166)
169 AMP@[154; 155) "&"
170 MUT_KW@[155; 158) "mut"
171 WHITESPACE@[158; 159) " "
172 PATH_TYPE@[159; 166)
173 PATH@[159; 166)
174 PATH_SEGMENT@[159; 166)
175 NAME_REF@[159; 162)
176 IDENT@[159; 162) "Foo"
177 TYPE_ARG_LIST@[162; 166)
178 L_ANGLE@[162; 163) "<"
179 LIFETIME_ARG@[163; 165)
180 LIFETIME@[163; 165) "\'a"
181 R_ANGLE@[165; 166) ">"
182 R_PAREN@[166; 167) ")"
183 R_ANGLE@[167; 168) ">"
184 PARAM_LIST@[168; 170)
185 L_PAREN@[168; 169) "("
186 R_PAREN@[169; 170) ")"
187 BLOCK_EXPR@[170; 172)
188 BLOCK@[170; 172)
189 L_CURLY@[170; 171) "{"
190 R_CURLY@[171; 172) "}"
191 WHITESPACE@[172; 174) "\n\n"
192 TRAIT_DEF@[174; 236)
193 TRAIT_KW@[174; 179) "trait"
194 WHITESPACE@[179; 180) " "
195 NAME@[180; 183)
196 IDENT@[180; 183) "Foo"
197 WHITESPACE@[183; 184) " "
198 ITEM_LIST@[184; 236)
199 L_CURLY@[184; 185) "{"
200 WHITESPACE@[185; 190) "\n "
201 FN_DEF@[190; 234)
202 FN_KW@[190; 192) "fn"
203 WHITESPACE@[192; 193) " "
204 NAME@[193; 196)
205 IDENT@[193; 196) "bar"
206 PARAM_LIST@[196; 233)
207 L_PAREN@[196; 197) "("
208 ATTR@[197; 204)
209 POUND@[197; 198) "#"
210 L_BRACK@[198; 199) "["
211 PATH@[199; 203)
212 PATH_SEGMENT@[199; 203)
213 NAME_REF@[199; 203)
214 IDENT@[199; 203) "attr"
215 R_BRACK@[203; 204) "]"
216 WHITESPACE@[204; 205) " "
217 PARAM@[205; 211)
218 PLACEHOLDER_PAT@[205; 206)
219 UNDERSCORE@[205; 206) "_"
220 COLON@[206; 207) ":"
221 WHITESPACE@[207; 208) " "
222 PATH_TYPE@[208; 211)
223 PATH@[208; 211)
224 PATH_SEGMENT@[208; 211)
225 NAME_REF@[208; 211)
226 IDENT@[208; 211) "u64"
227 COMMA@[211; 212) ","
228 WHITESPACE@[212; 213) " "
229 ATTR@[213; 221)
230 POUND@[213; 214) "#"
231 WHITESPACE@[214; 215) " "
232 L_BRACK@[215; 216) "["
233 PATH@[216; 220)
234 PATH_SEGMENT@[216; 220)
235 NAME_REF@[216; 220)
236 IDENT@[216; 220) "attr"
237 R_BRACK@[220; 221) "]"
238 WHITESPACE@[221; 222) " "
239 PARAM@[222; 232)
240 BIND_PAT@[222; 227)
241 MUT_KW@[222; 225) "mut"
242 WHITESPACE@[225; 226) " "
243 NAME@[226; 227)
244 IDENT@[226; 227) "x"
245 COLON@[227; 228) ":"
246 WHITESPACE@[228; 229) " "
247 PATH_TYPE@[229; 232)
248 PATH@[229; 232)
249 PATH_SEGMENT@[229; 232)
250 NAME_REF@[229; 232)
251 IDENT@[229; 232) "i32"
252 R_PAREN@[232; 233) ")"
253 SEMI@[233; 234) ";"
254 WHITESPACE@[234; 235) "\n"
255 R_CURLY@[235; 236) "}"
256 WHITESPACE@[236; 238) "\n\n"
257 IMPL_DEF@[238; 519)
258 IMPL_KW@[238; 242) "impl"
259 WHITESPACE@[242; 243) " "
260 PATH_TYPE@[243; 244)
261 PATH@[243; 244)
262 PATH_SEGMENT@[243; 244)
263 NAME_REF@[243; 244)
264 IDENT@[243; 244) "S"
265 WHITESPACE@[244; 245) " "
266 ITEM_LIST@[245; 519)
267 L_CURLY@[245; 246) "{"
268 WHITESPACE@[246; 252) "\n "
269 FN_DEF@[252; 277)
270 FN_KW@[252; 254) "fn"
271 WHITESPACE@[254; 255) " "
272 NAME@[255; 256)
273 IDENT@[255; 256) "f"
274 PARAM_LIST@[256; 274)
275 L_PAREN@[256; 257) "("
276 ATTR@[257; 268)
277 POUND@[257; 258) "#"
278 L_BRACK@[258; 259) "["
279 PATH@[259; 267)
280 PATH_SEGMENT@[259; 267)
281 NAME_REF@[259; 267)
282 IDENT@[259; 267) "must_use"
283 R_BRACK@[267; 268) "]"
284 WHITESPACE@[268; 269) " "
285 SELF_PARAM@[269; 273)
286 SELF_KW@[269; 273) "self"
287 R_PAREN@[273; 274) ")"
288 WHITESPACE@[274; 275) " "
289 BLOCK_EXPR@[275; 277)
290 BLOCK@[275; 277)
291 L_CURLY@[275; 276) "{"
292 R_CURLY@[276; 277) "}"
293 WHITESPACE@[277; 283) "\n "
294 FN_DEF@[283; 305)
295 FN_KW@[283; 285) "fn"
296 WHITESPACE@[285; 286) " "
297 NAME@[286; 288)
298 IDENT@[286; 288) "g1"
299 PARAM_LIST@[288; 302)
300 L_PAREN@[288; 289) "("
301 ATTR@[289; 296)
302 POUND@[289; 290) "#"
303 L_BRACK@[290; 291) "["
304 PATH@[291; 295)
305 PATH_SEGMENT@[291; 295)
306 NAME_REF@[291; 295)
307 IDENT@[291; 295) "attr"
308 R_BRACK@[295; 296) "]"
309 WHITESPACE@[296; 297) " "
310 SELF_PARAM@[297; 301)
311 SELF_KW@[297; 301) "self"
312 R_PAREN@[301; 302) ")"
313 WHITESPACE@[302; 303) " "
314 BLOCK_EXPR@[303; 305)
315 BLOCK@[303; 305)
316 L_CURLY@[303; 304) "{"
317 R_CURLY@[304; 305) "}"
318 WHITESPACE@[305; 311) "\n "
319 FN_DEF@[311; 334)
320 FN_KW@[311; 313) "fn"
321 WHITESPACE@[313; 314) " "
322 NAME@[314; 316)
323 IDENT@[314; 316) "g2"
324 PARAM_LIST@[316; 331)
325 L_PAREN@[316; 317) "("
326 ATTR@[317; 324)
327 POUND@[317; 318) "#"
328 L_BRACK@[318; 319) "["
329 PATH@[319; 323)
330 PATH_SEGMENT@[319; 323)
331 NAME_REF@[319; 323)
332 IDENT@[319; 323) "attr"
333 R_BRACK@[323; 324) "]"
334 WHITESPACE@[324; 325) " "
335 SELF_PARAM@[325; 330)
336 AMP@[325; 326) "&"
337 SELF_KW@[326; 330) "self"
338 R_PAREN@[330; 331) ")"
339 WHITESPACE@[331; 332) " "
340 BLOCK_EXPR@[332; 334)
341 BLOCK@[332; 334)
342 L_CURLY@[332; 333) "{"
343 R_CURLY@[333; 334) "}"
344 WHITESPACE@[334; 340) "\n "
345 FN_DEF@[340; 371)
346 FN_KW@[340; 342) "fn"
347 WHITESPACE@[342; 343) " "
348 NAME@[343; 345)
349 IDENT@[343; 345) "g3"
350 TYPE_PARAM_LIST@[345; 349)
351 L_ANGLE@[345; 346) "<"
352 LIFETIME_PARAM@[346; 348)
353 LIFETIME@[346; 348) "\'a"
354 R_ANGLE@[348; 349) ">"
355 PARAM_LIST@[349; 368)
356 L_PAREN@[349; 350) "("
357 ATTR@[350; 357)
358 POUND@[350; 351) "#"
359 L_BRACK@[351; 352) "["
360 PATH@[352; 356)
361 PATH_SEGMENT@[352; 356)
362 NAME_REF@[352; 356)
363 IDENT@[352; 356) "attr"
364 R_BRACK@[356; 357) "]"
365 WHITESPACE@[357; 358) " "
366 SELF_PARAM@[358; 367)
367 AMP@[358; 359) "&"
368 MUT_KW@[359; 362) "mut"
369 WHITESPACE@[362; 363) " "
370 SELF_KW@[363; 367) "self"
371 R_PAREN@[367; 368) ")"
372 WHITESPACE@[368; 369) " "
373 BLOCK_EXPR@[369; 371)
374 BLOCK@[369; 371)
375 L_CURLY@[369; 370) "{"
376 R_CURLY@[370; 371) "}"
377 WHITESPACE@[371; 377) "\n "
378 FN_DEF@[377; 407)
379 FN_KW@[377; 379) "fn"
380 WHITESPACE@[379; 380) " "
381 NAME@[380; 382)
382 IDENT@[380; 382) "g4"
383 TYPE_PARAM_LIST@[382; 386)
384 L_ANGLE@[382; 383) "<"
385 LIFETIME_PARAM@[383; 385)
386 LIFETIME@[383; 385) "\'a"
387 R_ANGLE@[385; 386) ">"
388 PARAM_LIST@[386; 404)
389 L_PAREN@[386; 387) "("
390 ATTR@[387; 394)
391 POUND@[387; 388) "#"
392 L_BRACK@[388; 389) "["
393 PATH@[389; 393)
394 PATH_SEGMENT@[389; 393)
395 NAME_REF@[389; 393)
396 IDENT@[389; 393) "attr"
397 R_BRACK@[393; 394) "]"
398 WHITESPACE@[394; 395) " "
399 SELF_PARAM@[395; 403)
400 AMP@[395; 396) "&"
401 LIFETIME@[396; 398) "\'a"
402 WHITESPACE@[398; 399) " "
403 SELF_KW@[399; 403) "self"
404 R_PAREN@[403; 404) ")"
405 WHITESPACE@[404; 405) " "
406 BLOCK_EXPR@[405; 407)
407 BLOCK@[405; 407)
408 L_CURLY@[405; 406) "{"
409 R_CURLY@[406; 407) "}"
410 WHITESPACE@[407; 413) "\n "
411 FN_DEF@[413; 447)
412 FN_KW@[413; 415) "fn"
413 WHITESPACE@[415; 416) " "
414 NAME@[416; 418)
415 IDENT@[416; 418) "g5"
416 TYPE_PARAM_LIST@[418; 422)
417 L_ANGLE@[418; 419) "<"
418 LIFETIME_PARAM@[419; 421)
419 LIFETIME@[419; 421) "\'a"
420 R_ANGLE@[421; 422) ">"
421 PARAM_LIST@[422; 444)
422 L_PAREN@[422; 423) "("
423 ATTR@[423; 430)
424 POUND@[423; 424) "#"
425 L_BRACK@[424; 425) "["
426 PATH@[425; 429)
427 PATH_SEGMENT@[425; 429)
428 NAME_REF@[425; 429)
429 IDENT@[425; 429) "attr"
430 R_BRACK@[429; 430) "]"
431 WHITESPACE@[430; 431) " "
432 SELF_PARAM@[431; 443)
433 AMP@[431; 432) "&"
434 LIFETIME@[432; 434) "\'a"
435 WHITESPACE@[434; 435) " "
436 MUT_KW@[435; 438) "mut"
437 WHITESPACE@[438; 439) " "
438 SELF_KW@[439; 443) "self"
439 R_PAREN@[443; 444) ")"
440 WHITESPACE@[444; 445) " "
441 BLOCK_EXPR@[445; 447)
442 BLOCK@[445; 447)
443 L_CURLY@[445; 446) "{"
444 R_CURLY@[446; 447) "}"
445 WHITESPACE@[447; 453) "\n "
446 FN_DEF@[453; 480)
447 FN_KW@[453; 455) "fn"
448 WHITESPACE@[455; 456) " "
449 NAME@[456; 457)
450 IDENT@[456; 457) "c"
451 PARAM_LIST@[457; 477)
452 L_PAREN@[457; 458) "("
453 ATTR@[458; 465)
454 POUND@[458; 459) "#"
455 L_BRACK@[459; 460) "["
456 PATH@[460; 464)
457 PATH_SEGMENT@[460; 464)
458 NAME_REF@[460; 464)
459 IDENT@[460; 464) "attr"
460 R_BRACK@[464; 465) "]"
461 WHITESPACE@[465; 466) " "
462 SELF_PARAM@[466; 476)
463 SELF_KW@[466; 470) "self"
464 COLON@[470; 471) ":"
465 WHITESPACE@[471; 472) " "
466 PATH_TYPE@[472; 476)
467 PATH@[472; 476)
468 PATH_SEGMENT@[472; 476)
469 NAME_REF@[472; 476)
470 IDENT@[472; 476) "Self"
471 R_PAREN@[476; 477) ")"
472 WHITESPACE@[477; 478) " "
473 BLOCK_EXPR@[478; 480)
474 BLOCK@[478; 480)
475 L_CURLY@[478; 479) "{"
476 R_CURLY@[479; 480) "}"
477 WHITESPACE@[480; 486) "\n "
478 FN_DEF@[486; 517)
479 FN_KW@[486; 488) "fn"
480 WHITESPACE@[488; 489) " "
481 NAME@[489; 490)
482 IDENT@[489; 490) "d"
483 PARAM_LIST@[490; 514)
484 L_PAREN@[490; 491) "("
485 ATTR@[491; 498)
486 POUND@[491; 492) "#"
487 L_BRACK@[492; 493) "["
488 PATH@[493; 497)
489 PATH_SEGMENT@[493; 497)
490 NAME_REF@[493; 497)
491 IDENT@[493; 497) "attr"
492 R_BRACK@[497; 498) "]"
493 WHITESPACE@[498; 499) " "
494 SELF_PARAM@[499; 513)
495 SELF_KW@[499; 503) "self"
496 COLON@[503; 504) ":"
497 WHITESPACE@[504; 505) " "
498 PATH_TYPE@[505; 513)
499 PATH@[505; 513)
500 PATH_SEGMENT@[505; 513)
501 NAME_REF@[505; 507)
502 IDENT@[505; 507) "Rc"
503 TYPE_ARG_LIST@[507; 513)
504 L_ANGLE@[507; 508) "<"
505 TYPE_ARG@[508; 512)
506 PATH_TYPE@[508; 512)
507 PATH@[508; 512)
508 PATH_SEGMENT@[508; 512)
509 NAME_REF@[508; 512)
510 IDENT@[508; 512) "Self"
511 R_ANGLE@[512; 513) ">"
512 R_PAREN@[513; 514) ")"
513 WHITESPACE@[514; 515) " "
514 BLOCK_EXPR@[515; 517)
515 BLOCK@[515; 517)
516 L_CURLY@[515; 516) "{"
517 R_CURLY@[516; 517) "}"
518 WHITESPACE@[517; 518) "\n"
519 R_CURLY@[518; 519) "}"