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