]> git.lizzy.rs Git - rust.git/blob - crates/parser/test_data/parser/ok/0035_weird_exprs.rast
Merge #11461
[rust.git] / crates / parser / test_data / parser / ok / 0035_weird_exprs.rast
1 SOURCE_FILE@0..3813
2   COMMENT@0..55 "//! Adapted from a `r ..."
3   WHITESPACE@55..56 "\n"
4   COMMENT@56..173 "//! https://github.co ..."
5   WHITESPACE@173..174 "\n"
6   COMMENT@174..178 "//! "
7   WHITESPACE@178..179 "\n"
8   COMMENT@179..269 "//! Reported to rust- ..."
9   WHITESPACE@269..271 "\n\n"
10   ATTR@271..302
11     POUND@271..272 "#"
12     BANG@272..273 "!"
13     L_BRACK@273..274 "["
14     META@274..301
15       PATH@274..279
16         PATH_SEGMENT@274..279
17           NAME_REF@274..279
18             IDENT@274..279 "allow"
19       TOKEN_TREE@279..301
20         L_PAREN@279..280 "("
21         IDENT@280..300 "non_camel_case_types"
22         R_PAREN@300..301 ")"
23     R_BRACK@301..302 "]"
24   WHITESPACE@302..303 "\n"
25   ATTR@303..323
26     POUND@303..304 "#"
27     BANG@304..305 "!"
28     L_BRACK@305..306 "["
29     META@306..322
30       PATH@306..311
31         PATH_SEGMENT@306..311
32           NAME_REF@306..311
33             IDENT@306..311 "allow"
34       TOKEN_TREE@311..322
35         L_PAREN@311..312 "("
36         IDENT@312..321 "dead_code"
37         R_PAREN@321..322 ")"
38     R_BRACK@322..323 "]"
39   WHITESPACE@323..324 "\n"
40   ATTR@324..351
41     POUND@324..325 "#"
42     BANG@325..326 "!"
43     L_BRACK@326..327 "["
44     META@327..350
45       PATH@327..332
46         PATH_SEGMENT@327..332
47           NAME_REF@327..332
48             IDENT@327..332 "allow"
49       TOKEN_TREE@332..350
50         L_PAREN@332..333 "("
51         IDENT@333..349 "unreachable_code"
52         R_PAREN@349..350 ")"
53     R_BRACK@350..351 "]"
54   WHITESPACE@351..352 "\n"
55   ATTR@352..376
56     POUND@352..353 "#"
57     BANG@353..354 "!"
58     L_BRACK@354..355 "["
59     META@355..375
60       PATH@355..360
61         PATH_SEGMENT@355..360
62           NAME_REF@355..360
63             IDENT@355..360 "allow"
64       TOKEN_TREE@360..375
65         L_PAREN@360..361 "("
66         IDENT@361..374 "unused_parens"
67         R_PAREN@374..375 ")"
68     R_BRACK@375..376 "]"
69   WHITESPACE@376..378 "\n\n"
70   ATTR@378..405
71     POUND@378..379 "#"
72     BANG@379..380 "!"
73     L_BRACK@380..381 "["
74     META@381..404
75       PATH@381..396
76         PATH_SEGMENT@381..396
77           NAME_REF@381..396
78             IDENT@381..396 "recursion_limit"
79       WHITESPACE@396..397 " "
80       EQ@397..398 "="
81       WHITESPACE@398..399 " "
82       LITERAL@399..404
83         STRING@399..404 "\"128\""
84     R_BRACK@404..405 "]"
85   WHITESPACE@405..407 "\n\n"
86   USE@407..427
87     USE_KW@407..410 "use"
88     WHITESPACE@410..411 " "
89     USE_TREE@411..426
90       PATH@411..426
91         PATH@411..420
92           PATH@411..414
93             PATH_SEGMENT@411..414
94               NAME_REF@411..414
95                 IDENT@411..414 "std"
96           COLON2@414..416 "::"
97           PATH_SEGMENT@416..420
98             NAME_REF@416..420
99               IDENT@416..420 "cell"
100         COLON2@420..422 "::"
101         PATH_SEGMENT@422..426
102           NAME_REF@422..426
103             IDENT@422..426 "Cell"
104     SEMICOLON@426..427 ";"
105   WHITESPACE@427..428 "\n"
106   USE@428..447
107     USE_KW@428..431 "use"
108     WHITESPACE@431..432 " "
109     USE_TREE@432..446
110       PATH@432..446
111         PATH@432..440
112           PATH@432..435
113             PATH_SEGMENT@432..435
114               NAME_REF@432..435
115                 IDENT@432..435 "std"
116           COLON2@435..437 "::"
117           PATH_SEGMENT@437..440
118             NAME_REF@437..440
119               IDENT@437..440 "mem"
120         COLON2@440..442 "::"
121         PATH_SEGMENT@442..446
122           NAME_REF@442..446
123             IDENT@442..446 "swap"
124     SEMICOLON@446..447 ";"
125   WHITESPACE@447..449 "\n\n"
126   COMMENT@449..518 "// Just a grab bag of ..."
127   WHITESPACE@518..520 "\n\n"
128   FN@520..572
129     FN_KW@520..522 "fn"
130     WHITESPACE@522..523 " "
131     NAME@523..530
132       IDENT@523..530 "strange"
133     PARAM_LIST@530..532
134       L_PAREN@530..531 "("
135       R_PAREN@531..532 ")"
136     WHITESPACE@532..533 " "
137     RET_TYPE@533..540
138       THIN_ARROW@533..535 "->"
139       WHITESPACE@535..536 " "
140       PATH_TYPE@536..540
141         PATH@536..540
142           PATH_SEGMENT@536..540
143             NAME_REF@536..540
144               IDENT@536..540 "bool"
145     WHITESPACE@540..541 " "
146     BLOCK_EXPR@541..572
147       STMT_LIST@541..572
148         L_CURLY@541..542 "{"
149         WHITESPACE@542..543 " "
150         LET_STMT@543..570
151           LET_KW@543..546 "let"
152           WHITESPACE@546..547 " "
153           IDENT_PAT@547..549
154             NAME@547..549
155               IDENT@547..549 "_x"
156           COLON@549..550 ":"
157           WHITESPACE@550..551 " "
158           PATH_TYPE@551..555
159             PATH@551..555
160               PATH_SEGMENT@551..555
161                 NAME_REF@551..555
162                   IDENT@551..555 "bool"
163           WHITESPACE@555..556 " "
164           EQ@556..557 "="
165           WHITESPACE@557..558 " "
166           RETURN_EXPR@558..569
167             RETURN_KW@558..564 "return"
168             WHITESPACE@564..565 " "
169             LITERAL@565..569
170               TRUE_KW@565..569 "true"
171           SEMICOLON@569..570 ";"
172         WHITESPACE@570..571 " "
173         R_CURLY@571..572 "}"
174   WHITESPACE@572..574 "\n\n"
175   FN@574..624
176     FN_KW@574..576 "fn"
177     WHITESPACE@576..577 " "
178     NAME@577..582
179       IDENT@577..582 "funny"
180     PARAM_LIST@582..584
181       L_PAREN@582..583 "("
182       R_PAREN@583..584 ")"
183     WHITESPACE@584..585 " "
184     BLOCK_EXPR@585..624
185       STMT_LIST@585..624
186         L_CURLY@585..586 "{"
187         WHITESPACE@586..591 "\n    "
188         FN@591..607
189           FN_KW@591..593 "fn"
190           WHITESPACE@593..594 " "
191           NAME@594..595
192             IDENT@594..595 "f"
193           PARAM_LIST@595..603
194             L_PAREN@595..596 "("
195             PARAM@596..602
196               IDENT_PAT@596..598
197                 NAME@596..598
198                   IDENT@596..598 "_x"
199               COLON@598..599 ":"
200               WHITESPACE@599..600 " "
201               TUPLE_TYPE@600..602
202                 L_PAREN@600..601 "("
203                 R_PAREN@601..602 ")"
204             R_PAREN@602..603 ")"
205           WHITESPACE@603..604 " "
206           BLOCK_EXPR@604..607
207             STMT_LIST@604..607
208               L_CURLY@604..605 "{"
209               WHITESPACE@605..606 " "
210               R_CURLY@606..607 "}"
211         WHITESPACE@607..612 "\n    "
212         EXPR_STMT@612..622
213           CALL_EXPR@612..621
214             PATH_EXPR@612..613
215               PATH@612..613
216                 PATH_SEGMENT@612..613
217                   NAME_REF@612..613
218                     IDENT@612..613 "f"
219             ARG_LIST@613..621
220               L_PAREN@613..614 "("
221               RETURN_EXPR@614..620
222                 RETURN_KW@614..620 "return"
223               R_PAREN@620..621 ")"
224           SEMICOLON@621..622 ";"
225         WHITESPACE@622..623 "\n"
226         R_CURLY@623..624 "}"
227   WHITESPACE@624..626 "\n\n"
228   FN@626..816
229     FN_KW@626..628 "fn"
230     WHITESPACE@628..629 " "
231     NAME@629..633
232       IDENT@629..633 "what"
233     PARAM_LIST@633..635
234       L_PAREN@633..634 "("
235       R_PAREN@634..635 ")"
236     WHITESPACE@635..636 " "
237     BLOCK_EXPR@636..816
238       STMT_LIST@636..816
239         L_CURLY@636..637 "{"
240         WHITESPACE@637..642 "\n    "
241         FN@642..720
242           FN_KW@642..644 "fn"
243           WHITESPACE@644..645 " "
244           NAME@645..648
245             IDENT@645..648 "the"
246           PARAM_LIST@648..664
247             L_PAREN@648..649 "("
248             PARAM@649..663
249               IDENT_PAT@649..650
250                 NAME@649..650
251                   IDENT@649..650 "x"
252               COLON@650..651 ":"
253               WHITESPACE@651..652 " "
254               REF_TYPE@652..663
255                 AMP@652..653 "&"
256                 PATH_TYPE@653..663
257                   PATH@653..663
258                     PATH_SEGMENT@653..663
259                       NAME_REF@653..657
260                         IDENT@653..657 "Cell"
261                       GENERIC_ARG_LIST@657..663
262                         L_ANGLE@657..658 "<"
263                         TYPE_ARG@658..662
264                           PATH_TYPE@658..662
265                             PATH@658..662
266                               PATH_SEGMENT@658..662
267                                 NAME_REF@658..662
268                                   IDENT@658..662 "bool"
269                         R_ANGLE@662..663 ">"
270             R_PAREN@663..664 ")"
271           WHITESPACE@664..665 " "
272           BLOCK_EXPR@665..720
273             STMT_LIST@665..720
274               L_CURLY@665..666 "{"
275               WHITESPACE@666..675 "\n        "
276               EXPR_STMT@675..714
277                 RETURN_EXPR@675..713
278                   RETURN_KW@675..681 "return"
279                   WHITESPACE@681..682 " "
280                   WHILE_EXPR@682..713
281                     WHILE_KW@682..687 "while"
282                     WHITESPACE@687..688 " "
283                     CONDITION@688..696
284                       PREFIX_EXPR@688..696
285                         BANG@688..689 "!"
286                         METHOD_CALL_EXPR@689..696
287                           PATH_EXPR@689..690
288                             PATH@689..690
289                               PATH_SEGMENT@689..690
290                                 NAME_REF@689..690
291                                   IDENT@689..690 "x"
292                           DOT@690..691 "."
293                           NAME_REF@691..694
294                             IDENT@691..694 "get"
295                           ARG_LIST@694..696
296                             L_PAREN@694..695 "("
297                             R_PAREN@695..696 ")"
298                     WHITESPACE@696..697 " "
299                     BLOCK_EXPR@697..713
300                       STMT_LIST@697..713
301                         L_CURLY@697..698 "{"
302                         WHITESPACE@698..699 " "
303                         EXPR_STMT@699..711
304                           METHOD_CALL_EXPR@699..710
305                             PATH_EXPR@699..700
306                               PATH@699..700
307                                 PATH_SEGMENT@699..700
308                                   NAME_REF@699..700
309                                     IDENT@699..700 "x"
310                             DOT@700..701 "."
311                             NAME_REF@701..704
312                               IDENT@701..704 "set"
313                             ARG_LIST@704..710
314                               L_PAREN@704..705 "("
315                               LITERAL@705..709
316                                 TRUE_KW@705..709 "true"
317                               R_PAREN@709..710 ")"
318                           SEMICOLON@710..711 ";"
319                         WHITESPACE@711..712 " "
320                         R_CURLY@712..713 "}"
321                 SEMICOLON@713..714 ";"
322               WHITESPACE@714..719 "\n    "
323               R_CURLY@719..720 "}"
324         WHITESPACE@720..725 "\n    "
325         LET_STMT@725..751
326           LET_KW@725..728 "let"
327           WHITESPACE@728..729 " "
328           IDENT_PAT@729..730
329             NAME@729..730
330               IDENT@729..730 "i"
331           WHITESPACE@730..731 " "
332           EQ@731..732 "="
333           WHITESPACE@732..733 " "
334           REF_EXPR@733..750
335             AMP@733..734 "&"
336             CALL_EXPR@734..750
337               PATH_EXPR@734..743
338                 PATH@734..743
339                   PATH@734..738
340                     PATH_SEGMENT@734..738
341                       NAME_REF@734..738
342                         IDENT@734..738 "Cell"
343                   COLON2@738..740 "::"
344                   PATH_SEGMENT@740..743
345                     NAME_REF@740..743
346                       IDENT@740..743 "new"
347               ARG_LIST@743..750
348                 L_PAREN@743..744 "("
349                 LITERAL@744..749
350                   FALSE_KW@744..749 "false"
351                 R_PAREN@749..750 ")"
352           SEMICOLON@750..751 ";"
353         WHITESPACE@751..756 "\n    "
354         LET_STMT@756..778
355           LET_KW@756..759 "let"
356           WHITESPACE@759..760 " "
357           IDENT_PAT@760..764
358             NAME@760..764
359               IDENT@760..764 "dont"
360           WHITESPACE@764..765 " "
361           EQ@765..766 "="
362           WHITESPACE@766..767 " "
363           BLOCK_EXPR@767..777
364             STMT_LIST@767..777
365               L_CURLY@767..768 "{"
366               CLOSURE_EXPR@768..776
367                 PARAM_LIST@768..770
368                   PIPE@768..769 "|"
369                   PIPE@769..770 "|"
370                 CALL_EXPR@770..776
371                   PATH_EXPR@770..773
372                     PATH@770..773
373                       PATH_SEGMENT@770..773
374                         NAME_REF@770..773
375                           IDENT@770..773 "the"
376                   ARG_LIST@773..776
377                     L_PAREN@773..774 "("
378                     PATH_EXPR@774..775
379                       PATH@774..775
380                         PATH_SEGMENT@774..775
381                           NAME_REF@774..775
382                             IDENT@774..775 "i"
383                     R_PAREN@775..776 ")"
384               R_CURLY@776..777 "}"
385           SEMICOLON@777..778 ";"
386         WHITESPACE@778..783 "\n    "
387         EXPR_STMT@783..790
388           CALL_EXPR@783..789
389             PATH_EXPR@783..787
390               PATH@783..787
391                 PATH_SEGMENT@783..787
392                   NAME_REF@783..787
393                     IDENT@783..787 "dont"
394             ARG_LIST@787..789
395               L_PAREN@787..788 "("
396               R_PAREN@788..789 ")"
397           SEMICOLON@789..790 ";"
398         WHITESPACE@790..795 "\n    "
399         EXPR_STMT@795..814
400           MACRO_CALL@795..813
401             PATH@795..801
402               PATH_SEGMENT@795..801
403                 NAME_REF@795..801
404                   IDENT@795..801 "assert"
405             BANG@801..802 "!"
406             TOKEN_TREE@802..813
407               L_PAREN@802..803 "("
408               TOKEN_TREE@803..812
409                 L_PAREN@803..804 "("
410                 IDENT@804..805 "i"
411                 DOT@805..806 "."
412                 IDENT@806..809 "get"
413                 TOKEN_TREE@809..811
414                   L_PAREN@809..810 "("
415                   R_PAREN@810..811 ")"
416                 R_PAREN@811..812 ")"
417               R_PAREN@812..813 ")"
418           SEMICOLON@813..814 ";"
419         WHITESPACE@814..815 "\n"
420         R_CURLY@815..816 "}"
421   WHITESPACE@816..818 "\n\n"
422   FN@818..1322
423     FN_KW@818..820 "fn"
424     WHITESPACE@820..821 " "
425     NAME@821..832
426       IDENT@821..832 "zombiejesus"
427     PARAM_LIST@832..834
428       L_PAREN@832..833 "("
429       R_PAREN@833..834 ")"
430     WHITESPACE@834..835 " "
431     BLOCK_EXPR@835..1322
432       STMT_LIST@835..1322
433         L_CURLY@835..836 "{"
434         WHITESPACE@836..841 "\n    "
435         LOOP_EXPR@841..1320
436           LOOP_KW@841..845 "loop"
437           WHITESPACE@845..846 " "
438           BLOCK_EXPR@846..1320
439             STMT_LIST@846..1320
440               L_CURLY@846..847 "{"
441               WHITESPACE@847..856 "\n        "
442               EXPR_STMT@856..1283
443                 WHILE_EXPR@856..1283
444                   WHILE_KW@856..861 "while"
445                   WHITESPACE@861..862 " "
446                   CONDITION@862..870
447                     PAREN_EXPR@862..870
448                       L_PAREN@862..863 "("
449                       RETURN_EXPR@863..869
450                         RETURN_KW@863..869 "return"
451                       R_PAREN@869..870 ")"
452                   WHITESPACE@870..871 " "
453                   BLOCK_EXPR@871..1283
454                     STMT_LIST@871..1283
455                       L_CURLY@871..872 "{"
456                       WHITESPACE@872..885 "\n            "
457                       IF_EXPR@885..1273
458                         IF_KW@885..887 "if"
459                         WHITESPACE@887..888 " "
460                         CONDITION@888..896
461                           PAREN_EXPR@888..896
462                             L_PAREN@888..889 "("
463                             RETURN_EXPR@889..895
464                               RETURN_KW@889..895 "return"
465                             R_PAREN@895..896 ")"
466                         WHITESPACE@896..897 " "
467                         BLOCK_EXPR@897..1216
468                           STMT_LIST@897..1216
469                             L_CURLY@897..898 "{"
470                             WHITESPACE@898..915 "\n                "
471                             EXPR_STMT@915..1202
472                               MATCH_EXPR@915..1201
473                                 MATCH_KW@915..920 "match"
474                                 WHITESPACE@920..921 " "
475                                 PAREN_EXPR@921..929
476                                   L_PAREN@921..922 "("
477                                   RETURN_EXPR@922..928
478                                     RETURN_KW@922..928 "return"
479                                   R_PAREN@928..929 ")"
480                                 WHITESPACE@929..930 " "
481                                 MATCH_ARM_LIST@930..1201
482                                   L_CURLY@930..931 "{"
483                                   WHITESPACE@931..952 "\n                    "
484                                   MATCH_ARM@952..1147
485                                     LITERAL_PAT@952..953
486                                       LITERAL@952..953
487                                         INT_NUMBER@952..953 "1"
488                                     WHITESPACE@953..954 " "
489                                     FAT_ARROW@954..956 "=>"
490                                     WHITESPACE@956..957 " "
491                                     BLOCK_EXPR@957..1147
492                                       STMT_LIST@957..1147
493                                         L_CURLY@957..958 "{"
494                                         WHITESPACE@958..983 "\n                     ..."
495                                         IF_EXPR@983..1125
496                                           IF_KW@983..985 "if"
497                                           WHITESPACE@985..986 " "
498                                           CONDITION@986..994
499                                             PAREN_EXPR@986..994
500                                               L_PAREN@986..987 "("
501                                               RETURN_EXPR@987..993
502                                                 RETURN_KW@987..993 "return"
503                                               R_PAREN@993..994 ")"
504                                           WHITESPACE@994..995 " "
505                                           BLOCK_EXPR@995..1057
506                                             STMT_LIST@995..1057
507                                               L_CURLY@995..996 "{"
508                                               WHITESPACE@996..1025 "\n                     ..."
509                                               RETURN_EXPR@1025..1031
510                                                 RETURN_KW@1025..1031 "return"
511                                               WHITESPACE@1031..1056 "\n                     ..."
512                                               R_CURLY@1056..1057 "}"
513                                           WHITESPACE@1057..1058 " "
514                                           ELSE_KW@1058..1062 "else"
515                                           WHITESPACE@1062..1063 " "
516                                           BLOCK_EXPR@1063..1125
517                                             STMT_LIST@1063..1125
518                                               L_CURLY@1063..1064 "{"
519                                               WHITESPACE@1064..1093 "\n                     ..."
520                                               RETURN_EXPR@1093..1099
521                                                 RETURN_KW@1093..1099 "return"
522                                               WHITESPACE@1099..1124 "\n                     ..."
523                                               R_CURLY@1124..1125 "}"
524                                         WHITESPACE@1125..1146 "\n                    "
525                                         R_CURLY@1146..1147 "}"
526                                   WHITESPACE@1147..1168 "\n                    "
527                                   MATCH_ARM@1168..1183
528                                     WILDCARD_PAT@1168..1169
529                                       UNDERSCORE@1168..1169 "_"
530                                     WHITESPACE@1169..1170 " "
531                                     FAT_ARROW@1170..1172 "=>"
532                                     WHITESPACE@1172..1173 " "
533                                     BLOCK_EXPR@1173..1183
534                                       STMT_LIST@1173..1183
535                                         L_CURLY@1173..1174 "{"
536                                         WHITESPACE@1174..1175 " "
537                                         RETURN_EXPR@1175..1181
538                                           RETURN_KW@1175..1181 "return"
539                                         WHITESPACE@1181..1182 " "
540                                         R_CURLY@1182..1183 "}"
541                                   WHITESPACE@1183..1200 "\n                "
542                                   R_CURLY@1200..1201 "}"
543                               SEMICOLON@1201..1202 ";"
544                             WHITESPACE@1202..1215 "\n            "
545                             R_CURLY@1215..1216 "}"
546                         WHITESPACE@1216..1217 " "
547                         ELSE_KW@1217..1221 "else"
548                         WHITESPACE@1221..1222 " "
549                         IF_EXPR@1222..1273
550                           IF_KW@1222..1224 "if"
551                           WHITESPACE@1224..1225 " "
552                           CONDITION@1225..1233
553                             PAREN_EXPR@1225..1233
554                               L_PAREN@1225..1226 "("
555                               RETURN_EXPR@1226..1232
556                                 RETURN_KW@1226..1232 "return"
557                               R_PAREN@1232..1233 ")"
558                           WHITESPACE@1233..1234 " "
559                           BLOCK_EXPR@1234..1273
560                             STMT_LIST@1234..1273
561                               L_CURLY@1234..1235 "{"
562                               WHITESPACE@1235..1252 "\n                "
563                               EXPR_STMT@1252..1259
564                                 RETURN_EXPR@1252..1258
565                                   RETURN_KW@1252..1258 "return"
566                                 SEMICOLON@1258..1259 ";"
567                               WHITESPACE@1259..1272 "\n            "
568                               R_CURLY@1272..1273 "}"
569                       WHITESPACE@1273..1282 "\n        "
570                       R_CURLY@1282..1283 "}"
571               WHITESPACE@1283..1292 "\n        "
572               IF_EXPR@1292..1314
573                 IF_KW@1292..1294 "if"
574                 WHITESPACE@1294..1295 " "
575                 CONDITION@1295..1303
576                   PAREN_EXPR@1295..1303
577                     L_PAREN@1295..1296 "("
578                     RETURN_EXPR@1296..1302
579                       RETURN_KW@1296..1302 "return"
580                     R_PAREN@1302..1303 ")"
581                 WHITESPACE@1303..1304 " "
582                 BLOCK_EXPR@1304..1314
583                   STMT_LIST@1304..1314
584                     L_CURLY@1304..1305 "{"
585                     WHITESPACE@1305..1306 " "
586                     EXPR_STMT@1306..1312
587                       BREAK_EXPR@1306..1311
588                         BREAK_KW@1306..1311 "break"
589                       SEMICOLON@1311..1312 ";"
590                     WHITESPACE@1312..1313 " "
591                     R_CURLY@1313..1314 "}"
592               WHITESPACE@1314..1319 "\n    "
593               R_CURLY@1319..1320 "}"
594         WHITESPACE@1320..1321 "\n"
595         R_CURLY@1321..1322 "}"
596   WHITESPACE@1322..1324 "\n\n"
597   FN@1324..1539
598     FN_KW@1324..1326 "fn"
599     WHITESPACE@1326..1327 " "
600     NAME@1327..1334
601       IDENT@1327..1334 "notsure"
602     PARAM_LIST@1334..1336
603       L_PAREN@1334..1335 "("
604       R_PAREN@1335..1336 ")"
605     WHITESPACE@1336..1337 " "
606     BLOCK_EXPR@1337..1539
607       STMT_LIST@1337..1539
608         L_CURLY@1337..1338 "{"
609         WHITESPACE@1338..1343 "\n    "
610         LET_STMT@1343..1361
611           LET_KW@1343..1346 "let"
612           WHITESPACE@1346..1347 " "
613           IDENT_PAT@1347..1353
614             MUT_KW@1347..1350 "mut"
615             WHITESPACE@1350..1351 " "
616             NAME@1351..1353
617               IDENT@1351..1353 "_x"
618           COLON@1353..1354 ":"
619           WHITESPACE@1354..1355 " "
620           PATH_TYPE@1355..1360
621             PATH@1355..1360
622               PATH_SEGMENT@1355..1360
623                 NAME_REF@1355..1360
624                   IDENT@1355..1360 "isize"
625           SEMICOLON@1360..1361 ";"
626         WHITESPACE@1361..1366 "\n    "
627         LET_STMT@1366..1400
628           LET_KW@1366..1369 "let"
629           WHITESPACE@1369..1370 " "
630           IDENT_PAT@1370..1376
631             MUT_KW@1370..1373 "mut"
632             WHITESPACE@1373..1374 " "
633             NAME@1374..1376
634               IDENT@1374..1376 "_y"
635           WHITESPACE@1376..1377 " "
636           EQ@1377..1378 "="
637           WHITESPACE@1378..1379 " "
638           BIN_EXPR@1379..1399
639             PAREN_EXPR@1379..1387
640               L_PAREN@1379..1380 "("
641               BIN_EXPR@1380..1386
642                 PATH_EXPR@1380..1382
643                   PATH@1380..1382
644                     PATH_SEGMENT@1380..1382
645                       NAME_REF@1380..1382
646                         IDENT@1380..1382 "_x"
647                 WHITESPACE@1382..1383 " "
648                 EQ@1383..1384 "="
649                 WHITESPACE@1384..1385 " "
650                 LITERAL@1385..1386
651                   INT_NUMBER@1385..1386 "0"
652               R_PAREN@1386..1387 ")"
653             WHITESPACE@1387..1388 " "
654             EQ2@1388..1390 "=="
655             WHITESPACE@1390..1391 " "
656             PAREN_EXPR@1391..1399
657               L_PAREN@1391..1392 "("
658               BIN_EXPR@1392..1398
659                 PATH_EXPR@1392..1394
660                   PATH@1392..1394
661                     PATH_SEGMENT@1392..1394
662                       NAME_REF@1392..1394
663                         IDENT@1392..1394 "_x"
664                 WHITESPACE@1394..1395 " "
665                 EQ@1395..1396 "="
666                 WHITESPACE@1396..1397 " "
667                 LITERAL@1397..1398
668                   INT_NUMBER@1397..1398 "0"
669               R_PAREN@1398..1399 ")"
670           SEMICOLON@1399..1400 ";"
671         WHITESPACE@1400..1405 "\n    "
672         LET_STMT@1405..1438
673           LET_KW@1405..1408 "let"
674           WHITESPACE@1408..1409 " "
675           IDENT_PAT@1409..1415
676             MUT_KW@1409..1412 "mut"
677             WHITESPACE@1412..1413 " "
678             NAME@1413..1415
679               IDENT@1413..1415 "_z"
680           WHITESPACE@1415..1416 " "
681           EQ@1416..1417 "="
682           WHITESPACE@1417..1418 " "
683           BIN_EXPR@1418..1437
684             PAREN_EXPR@1418..1426
685               L_PAREN@1418..1419 "("
686               BIN_EXPR@1419..1425
687                 PATH_EXPR@1419..1421
688                   PATH@1419..1421
689                     PATH_SEGMENT@1419..1421
690                       NAME_REF@1419..1421
691                         IDENT@1419..1421 "_x"
692                 WHITESPACE@1421..1422 " "
693                 EQ@1422..1423 "="
694                 WHITESPACE@1423..1424 " "
695                 LITERAL@1424..1425
696                   INT_NUMBER@1424..1425 "0"
697               R_PAREN@1425..1426 ")"
698             WHITESPACE@1426..1427 " "
699             L_ANGLE@1427..1428 "<"
700             WHITESPACE@1428..1429 " "
701             PAREN_EXPR@1429..1437
702               L_PAREN@1429..1430 "("
703               BIN_EXPR@1430..1436
704                 PATH_EXPR@1430..1432
705                   PATH@1430..1432
706                     PATH_SEGMENT@1430..1432
707                       NAME_REF@1430..1432
708                         IDENT@1430..1432 "_x"
709                 WHITESPACE@1432..1433 " "
710                 EQ@1433..1434 "="
711                 WHITESPACE@1434..1435 " "
712                 LITERAL@1435..1436
713                   INT_NUMBER@1435..1436 "0"
714               R_PAREN@1436..1437 ")"
715           SEMICOLON@1437..1438 ";"
716         WHITESPACE@1438..1443 "\n    "
717         LET_STMT@1443..1474
718           LET_KW@1443..1446 "let"
719           WHITESPACE@1446..1447 " "
720           IDENT_PAT@1447..1449
721             NAME@1447..1449
722               IDENT@1447..1449 "_a"
723           WHITESPACE@1449..1450 " "
724           EQ@1450..1451 "="
725           WHITESPACE@1451..1452 " "
726           BIN_EXPR@1452..1473
727             PAREN_EXPR@1452..1461
728               L_PAREN@1452..1453 "("
729               BIN_EXPR@1453..1460
730                 PATH_EXPR@1453..1455
731                   PATH@1453..1455
732                     PATH_SEGMENT@1453..1455
733                       NAME_REF@1453..1455
734                         IDENT@1453..1455 "_x"
735                 WHITESPACE@1455..1456 " "
736                 PLUSEQ@1456..1458 "+="
737                 WHITESPACE@1458..1459 " "
738                 LITERAL@1459..1460
739                   INT_NUMBER@1459..1460 "0"
740               R_PAREN@1460..1461 ")"
741             WHITESPACE@1461..1462 " "
742             EQ2@1462..1464 "=="
743             WHITESPACE@1464..1465 " "
744             PAREN_EXPR@1465..1473
745               L_PAREN@1465..1466 "("
746               BIN_EXPR@1466..1472
747                 PATH_EXPR@1466..1468
748                   PATH@1466..1468
749                     PATH_SEGMENT@1466..1468
750                       NAME_REF@1466..1468
751                         IDENT@1466..1468 "_x"
752                 WHITESPACE@1468..1469 " "
753                 EQ@1469..1470 "="
754                 WHITESPACE@1470..1471 " "
755                 LITERAL@1471..1472
756                   INT_NUMBER@1471..1472 "0"
757               R_PAREN@1472..1473 ")"
758           SEMICOLON@1473..1474 ";"
759         WHITESPACE@1474..1479 "\n    "
760         LET_STMT@1479..1537
761           LET_KW@1479..1482 "let"
762           WHITESPACE@1482..1483 " "
763           IDENT_PAT@1483..1485
764             NAME@1483..1485
765               IDENT@1483..1485 "_b"
766           WHITESPACE@1485..1486 " "
767           EQ@1486..1487 "="
768           WHITESPACE@1487..1488 " "
769           BIN_EXPR@1488..1536
770             CALL_EXPR@1488..1510
771               PATH_EXPR@1488..1492
772                 PATH@1488..1492
773                   PATH_SEGMENT@1488..1492
774                     NAME_REF@1488..1492
775                       IDENT@1488..1492 "swap"
776               ARG_LIST@1492..1510
777                 L_PAREN@1492..1493 "("
778                 REF_EXPR@1493..1500
779                   AMP@1493..1494 "&"
780                   MUT_KW@1494..1497 "mut"
781                   WHITESPACE@1497..1498 " "
782                   PATH_EXPR@1498..1500
783                     PATH@1498..1500
784                       PATH_SEGMENT@1498..1500
785                         NAME_REF@1498..1500
786                           IDENT@1498..1500 "_y"
787                 COMMA@1500..1501 ","
788                 WHITESPACE@1501..1502 " "
789                 REF_EXPR@1502..1509
790                   AMP@1502..1503 "&"
791                   MUT_KW@1503..1506 "mut"
792                   WHITESPACE@1506..1507 " "
793                   PATH_EXPR@1507..1509
794                     PATH@1507..1509
795                       PATH_SEGMENT@1507..1509
796                         NAME_REF@1507..1509
797                           IDENT@1507..1509 "_z"
798                 R_PAREN@1509..1510 ")"
799             WHITESPACE@1510..1511 " "
800             EQ2@1511..1513 "=="
801             WHITESPACE@1513..1514 " "
802             CALL_EXPR@1514..1536
803               PATH_EXPR@1514..1518
804                 PATH@1514..1518
805                   PATH_SEGMENT@1514..1518
806                     NAME_REF@1514..1518
807                       IDENT@1514..1518 "swap"
808               ARG_LIST@1518..1536
809                 L_PAREN@1518..1519 "("
810                 REF_EXPR@1519..1526
811                   AMP@1519..1520 "&"
812                   MUT_KW@1520..1523 "mut"
813                   WHITESPACE@1523..1524 " "
814                   PATH_EXPR@1524..1526
815                     PATH@1524..1526
816                       PATH_SEGMENT@1524..1526
817                         NAME_REF@1524..1526
818                           IDENT@1524..1526 "_y"
819                 COMMA@1526..1527 ","
820                 WHITESPACE@1527..1528 " "
821                 REF_EXPR@1528..1535
822                   AMP@1528..1529 "&"
823                   MUT_KW@1529..1532 "mut"
824                   WHITESPACE@1532..1533 " "
825                   PATH_EXPR@1533..1535
826                     PATH@1533..1535
827                       PATH_SEGMENT@1533..1535
828                         NAME_REF@1533..1535
829                           IDENT@1533..1535 "_z"
830                 R_PAREN@1535..1536 ")"
831           SEMICOLON@1536..1537 ";"
832         WHITESPACE@1537..1538 "\n"
833         R_CURLY@1538..1539 "}"
834   WHITESPACE@1539..1541 "\n\n"
835   FN@1541..1741
836     FN_KW@1541..1543 "fn"
837     WHITESPACE@1543..1544 " "
838     NAME@1544..1557
839       IDENT@1544..1557 "canttouchthis"
840     PARAM_LIST@1557..1559
841       L_PAREN@1557..1558 "("
842       R_PAREN@1558..1559 ")"
843     WHITESPACE@1559..1560 " "
844     RET_TYPE@1560..1568
845       THIN_ARROW@1560..1562 "->"
846       WHITESPACE@1562..1563 " "
847       PATH_TYPE@1563..1568
848         PATH@1563..1568
849           PATH_SEGMENT@1563..1568
850             NAME_REF@1563..1568
851               IDENT@1563..1568 "usize"
852     WHITESPACE@1568..1569 " "
853     BLOCK_EXPR@1569..1741
854       STMT_LIST@1569..1741
855         L_CURLY@1569..1570 "{"
856         WHITESPACE@1570..1575 "\n    "
857         FN@1575..1598
858           FN_KW@1575..1577 "fn"
859           WHITESPACE@1577..1578 " "
860           NAME@1578..1579
861             IDENT@1578..1579 "p"
862           PARAM_LIST@1579..1581
863             L_PAREN@1579..1580 "("
864             R_PAREN@1580..1581 ")"
865           WHITESPACE@1581..1582 " "
866           RET_TYPE@1582..1589
867             THIN_ARROW@1582..1584 "->"
868             WHITESPACE@1584..1585 " "
869             PATH_TYPE@1585..1589
870               PATH@1585..1589
871                 PATH_SEGMENT@1585..1589
872                   NAME_REF@1585..1589
873                     IDENT@1585..1589 "bool"
874           WHITESPACE@1589..1590 " "
875           BLOCK_EXPR@1590..1598
876             STMT_LIST@1590..1598
877               L_CURLY@1590..1591 "{"
878               WHITESPACE@1591..1592 " "
879               LITERAL@1592..1596
880                 TRUE_KW@1592..1596 "true"
881               WHITESPACE@1596..1597 " "
882               R_CURLY@1597..1598 "}"
883         WHITESPACE@1598..1603 "\n    "
884         LET_STMT@1603..1648
885           LET_KW@1603..1606 "let"
886           WHITESPACE@1606..1607 " "
887           IDENT_PAT@1607..1609
888             NAME@1607..1609
889               IDENT@1607..1609 "_a"
890           WHITESPACE@1609..1610 " "
891           EQ@1610..1611 "="
892           WHITESPACE@1611..1612 " "
893           PAREN_EXPR@1612..1647
894             L_PAREN@1612..1613 "("
895             BIN_EXPR@1613..1646
896               MACRO_CALL@1613..1628
897                 PATH@1613..1619
898                   PATH_SEGMENT@1613..1619
899                     NAME_REF@1613..1619
900                       IDENT@1613..1619 "assert"
901                 BANG@1619..1620 "!"
902                 TOKEN_TREE@1620..1628
903                   L_PAREN@1620..1621 "("
904                   TOKEN_TREE@1621..1627
905                     L_PAREN@1621..1622 "("
906                     TRUE_KW@1622..1626 "true"
907                     R_PAREN@1626..1627 ")"
908                   R_PAREN@1627..1628 ")"
909               WHITESPACE@1628..1629 " "
910               EQ2@1629..1631 "=="
911               WHITESPACE@1631..1632 " "
912               PAREN_EXPR@1632..1646
913                 L_PAREN@1632..1633 "("
914                 MACRO_CALL@1633..1645
915                   PATH@1633..1639
916                     PATH_SEGMENT@1633..1639
917                       NAME_REF@1633..1639
918                         IDENT@1633..1639 "assert"
919                   BANG@1639..1640 "!"
920                   TOKEN_TREE@1640..1645
921                     L_PAREN@1640..1641 "("
922                     IDENT@1641..1642 "p"
923                     TOKEN_TREE@1642..1644
924                       L_PAREN@1642..1643 "("
925                       R_PAREN@1643..1644 ")"
926                     R_PAREN@1644..1645 ")"
927                 R_PAREN@1645..1646 ")"
928             R_PAREN@1646..1647 ")"
929           SEMICOLON@1647..1648 ";"
930         WHITESPACE@1648..1653 "\n    "
931         LET_STMT@1653..1685
932           LET_KW@1653..1656 "let"
933           WHITESPACE@1656..1657 " "
934           IDENT_PAT@1657..1659
935             NAME@1657..1659
936               IDENT@1657..1659 "_c"
937           WHITESPACE@1659..1660 " "
938           EQ@1660..1661 "="
939           WHITESPACE@1661..1662 " "
940           PAREN_EXPR@1662..1684
941             L_PAREN@1662..1663 "("
942             BIN_EXPR@1663..1683
943               MACRO_CALL@1663..1677
944                 PATH@1663..1669
945                   PATH_SEGMENT@1663..1669
946                     NAME_REF@1663..1669
947                       IDENT@1663..1669 "assert"
948                 BANG@1669..1670 "!"
949                 TOKEN_TREE@1670..1677
950                   L_PAREN@1670..1671 "("
951                   TOKEN_TREE@1671..1676
952                     L_PAREN@1671..1672 "("
953                     IDENT@1672..1673 "p"
954                     TOKEN_TREE@1673..1675
955                       L_PAREN@1673..1674 "("
956                       R_PAREN@1674..1675 ")"
957                     R_PAREN@1675..1676 ")"
958                   R_PAREN@1676..1677 ")"
959               WHITESPACE@1677..1678 " "
960               EQ2@1678..1680 "=="
961               WHITESPACE@1680..1681 " "
962               TUPLE_EXPR@1681..1683
963                 L_PAREN@1681..1682 "("
964                 R_PAREN@1682..1683 ")"
965             R_PAREN@1683..1684 ")"
966           SEMICOLON@1684..1685 ";"
967         WHITESPACE@1685..1690 "\n    "
968         LET_STMT@1690..1739
969           LET_KW@1690..1693 "let"
970           WHITESPACE@1693..1694 " "
971           IDENT_PAT@1694..1696
972             NAME@1694..1696
973               IDENT@1694..1696 "_b"
974           COLON@1696..1697 ":"
975           WHITESPACE@1697..1698 " "
976           PATH_TYPE@1698..1702
977             PATH@1698..1702
978               PATH_SEGMENT@1698..1702
979                 NAME_REF@1698..1702
980                   IDENT@1698..1702 "bool"
981           WHITESPACE@1702..1703 " "
982           EQ@1703..1704 "="
983           WHITESPACE@1704..1705 " "
984           PAREN_EXPR@1705..1738
985             L_PAREN@1705..1706 "("
986             BIN_EXPR@1706..1737
987               MACRO_CALL@1706..1723
988                 PATH@1706..1713
989                   PATH_SEGMENT@1706..1713
990                     NAME_REF@1706..1713
991                       IDENT@1706..1713 "println"
992                 BANG@1713..1714 "!"
993                 TOKEN_TREE@1714..1723
994                   L_PAREN@1714..1715 "("
995                   STRING@1715..1719 "\"{}\""
996                   COMMA@1719..1720 ","
997                   WHITESPACE@1720..1721 " "
998                   INT_NUMBER@1721..1722 "0"
999                   R_PAREN@1722..1723 ")"
1000               WHITESPACE@1723..1724 " "
1001               EQ2@1724..1726 "=="
1002               WHITESPACE@1726..1727 " "
1003               PAREN_EXPR@1727..1737
1004                 L_PAREN@1727..1728 "("
1005                 RETURN_EXPR@1728..1736
1006                   RETURN_KW@1728..1734 "return"
1007                   WHITESPACE@1734..1735 " "
1008                   LITERAL@1735..1736
1009                     INT_NUMBER@1735..1736 "0"
1010                 R_PAREN@1736..1737 ")"
1011             R_PAREN@1737..1738 ")"
1012           SEMICOLON@1738..1739 ";"
1013         WHITESPACE@1739..1740 "\n"
1014         R_CURLY@1740..1741 "}"
1015   WHITESPACE@1741..1743 "\n\n"
1016   FN@1743..1904
1017     FN_KW@1743..1745 "fn"
1018     WHITESPACE@1745..1746 " "
1019     NAME@1746..1755
1020       IDENT@1746..1755 "angrydome"
1021     PARAM_LIST@1755..1757
1022       L_PAREN@1755..1756 "("
1023       R_PAREN@1756..1757 ")"
1024     WHITESPACE@1757..1758 " "
1025     BLOCK_EXPR@1758..1904
1026       STMT_LIST@1758..1904
1027         L_CURLY@1758..1759 "{"
1028         WHITESPACE@1759..1764 "\n    "
1029         EXPR_STMT@1764..1785
1030           LOOP_EXPR@1764..1785
1031             LOOP_KW@1764..1768 "loop"
1032             WHITESPACE@1768..1769 " "
1033             BLOCK_EXPR@1769..1785
1034               STMT_LIST@1769..1785
1035                 L_CURLY@1769..1770 "{"
1036                 WHITESPACE@1770..1771 " "
1037                 IF_EXPR@1771..1783
1038                   IF_KW@1771..1773 "if"
1039                   WHITESPACE@1773..1774 " "
1040                   CONDITION@1774..1779
1041                     BREAK_EXPR@1774..1779
1042                       BREAK_KW@1774..1779 "break"
1043                   WHITESPACE@1779..1780 " "
1044                   BLOCK_EXPR@1780..1783
1045                     STMT_LIST@1780..1783
1046                       L_CURLY@1780..1781 "{"
1047                       WHITESPACE@1781..1782 " "
1048                       R_CURLY@1782..1783 "}"
1049                 WHITESPACE@1783..1784 " "
1050                 R_CURLY@1784..1785 "}"
1051         WHITESPACE@1785..1790 "\n    "
1052         LET_STMT@1790..1804
1053           LET_KW@1790..1793 "let"
1054           WHITESPACE@1793..1794 " "
1055           IDENT_PAT@1794..1799
1056             MUT_KW@1794..1797 "mut"
1057             WHITESPACE@1797..1798 " "
1058             NAME@1798..1799
1059               IDENT@1798..1799 "i"
1060           WHITESPACE@1799..1800 " "
1061           EQ@1800..1801 "="
1062           WHITESPACE@1801..1802 " "
1063           LITERAL@1802..1803
1064             INT_NUMBER@1802..1803 "0"
1065           SEMICOLON@1803..1804 ";"
1066         WHITESPACE@1804..1809 "\n    "
1067         LOOP_EXPR@1809..1902
1068           LOOP_KW@1809..1813 "loop"
1069           WHITESPACE@1813..1814 " "
1070           BLOCK_EXPR@1814..1902
1071             STMT_LIST@1814..1902
1072               L_CURLY@1814..1815 "{"
1073               WHITESPACE@1815..1816 " "
1074               EXPR_STMT@1816..1823
1075                 BIN_EXPR@1816..1822
1076                   PATH_EXPR@1816..1817
1077                     PATH@1816..1817
1078                       PATH_SEGMENT@1816..1817
1079                         NAME_REF@1816..1817
1080                           IDENT@1816..1817 "i"
1081                   WHITESPACE@1817..1818 " "
1082                   PLUSEQ@1818..1820 "+="
1083                   WHITESPACE@1820..1821 " "
1084                   LITERAL@1821..1822
1085                     INT_NUMBER@1821..1822 "1"
1086                 SEMICOLON@1822..1823 ";"
1087               WHITESPACE@1823..1824 " "
1088               EXPR_STMT@1824..1887
1089                 IF_EXPR@1824..1887
1090                   IF_KW@1824..1826 "if"
1091                   WHITESPACE@1826..1827 " "
1092                   CONDITION@1827..1833
1093                     BIN_EXPR@1827..1833
1094                       PATH_EXPR@1827..1828
1095                         PATH@1827..1828
1096                           PATH_SEGMENT@1827..1828
1097                             NAME_REF@1827..1828
1098                               IDENT@1827..1828 "i"
1099                       WHITESPACE@1828..1829 " "
1100                       EQ2@1829..1831 "=="
1101                       WHITESPACE@1831..1832 " "
1102                       LITERAL@1832..1833
1103                         INT_NUMBER@1832..1833 "1"
1104                   WHITESPACE@1833..1834 " "
1105                   BLOCK_EXPR@1834..1887
1106                     STMT_LIST@1834..1887
1107                       L_CURLY@1834..1835 "{"
1108                       WHITESPACE@1835..1836 " "
1109                       MATCH_EXPR@1836..1885
1110                         MATCH_KW@1836..1841 "match"
1111                         WHITESPACE@1841..1842 " "
1112                         PAREN_EXPR@1842..1852
1113                           L_PAREN@1842..1843 "("
1114                           CONTINUE_EXPR@1843..1851
1115                             CONTINUE_KW@1843..1851 "continue"
1116                           R_PAREN@1851..1852 ")"
1117                         WHITESPACE@1852..1853 " "
1118                         MATCH_ARM_LIST@1853..1885
1119                           L_CURLY@1853..1854 "{"
1120                           WHITESPACE@1854..1855 " "
1121                           MATCH_ARM@1855..1864
1122                             LITERAL_PAT@1855..1856
1123                               LITERAL@1855..1856
1124                                 INT_NUMBER@1855..1856 "1"
1125                             WHITESPACE@1856..1857 " "
1126                             FAT_ARROW@1857..1859 "=>"
1127                             WHITESPACE@1859..1860 " "
1128                             BLOCK_EXPR@1860..1863
1129                               STMT_LIST@1860..1863
1130                                 L_CURLY@1860..1861 "{"
1131                                 WHITESPACE@1861..1862 " "
1132                                 R_CURLY@1862..1863 "}"
1133                             COMMA@1863..1864 ","
1134                           WHITESPACE@1864..1865 " "
1135                           MATCH_ARM@1865..1883
1136                             WILDCARD_PAT@1865..1866
1137                               UNDERSCORE@1865..1866 "_"
1138                             WHITESPACE@1866..1867 " "
1139                             FAT_ARROW@1867..1869 "=>"
1140                             WHITESPACE@1869..1870 " "
1141                             MACRO_CALL@1870..1883
1142                               PATH@1870..1875
1143                                 PATH_SEGMENT@1870..1875
1144                                   NAME_REF@1870..1875
1145                                     IDENT@1870..1875 "panic"
1146                               BANG@1875..1876 "!"
1147                               TOKEN_TREE@1876..1883
1148                                 L_PAREN@1876..1877 "("
1149                                 STRING@1877..1882 "\"wat\""
1150                                 R_PAREN@1882..1883 ")"
1151                           WHITESPACE@1883..1884 " "
1152                           R_CURLY@1884..1885 "}"
1153                       WHITESPACE@1885..1886 " "
1154                       R_CURLY@1886..1887 "}"
1155               WHITESPACE@1887..1894 "\n      "
1156               EXPR_STMT@1894..1900
1157                 BREAK_EXPR@1894..1899
1158                   BREAK_KW@1894..1899 "break"
1159                 SEMICOLON@1899..1900 ";"
1160               WHITESPACE@1900..1901 " "
1161               R_CURLY@1901..1902 "}"
1162         WHITESPACE@1902..1903 "\n"
1163         R_CURLY@1903..1904 "}"
1164   WHITESPACE@1904..1906 "\n\n"
1165   FN@1906..1960
1166     FN_KW@1906..1908 "fn"
1167     WHITESPACE@1908..1909 " "
1168     NAME@1909..1921
1169       IDENT@1909..1921 "evil_lincoln"
1170     PARAM_LIST@1921..1923
1171       L_PAREN@1921..1922 "("
1172       R_PAREN@1922..1923 ")"
1173     WHITESPACE@1923..1924 " "
1174     BLOCK_EXPR@1924..1960
1175       STMT_LIST@1924..1960
1176         L_CURLY@1924..1925 "{"
1177         WHITESPACE@1925..1926 " "
1178         LET_STMT@1926..1958
1179           LET_KW@1926..1929 "let"
1180           WHITESPACE@1929..1930 " "
1181           IDENT_PAT@1930..1935
1182             NAME@1930..1935
1183               IDENT@1930..1935 "_evil"
1184           WHITESPACE@1935..1936 " "
1185           EQ@1936..1937 "="
1186           WHITESPACE@1937..1938 " "
1187           MACRO_CALL@1938..1957
1188             PATH@1938..1945
1189               PATH_SEGMENT@1938..1945
1190                 NAME_REF@1938..1945
1191                   IDENT@1938..1945 "println"
1192             BANG@1945..1946 "!"
1193             TOKEN_TREE@1946..1957
1194               L_PAREN@1946..1947 "("
1195               STRING@1947..1956 "\"lincoln\""
1196               R_PAREN@1956..1957 ")"
1197           SEMICOLON@1957..1958 ";"
1198         WHITESPACE@1958..1959 " "
1199         R_CURLY@1959..1960 "}"
1200   WHITESPACE@1960..1962 "\n\n"
1201   FN@1962..2198
1202     FN_KW@1962..1964 "fn"
1203     WHITESPACE@1964..1965 " "
1204     NAME@1965..1969
1205       IDENT@1965..1969 "dots"
1206     PARAM_LIST@1969..1971
1207       L_PAREN@1969..1970 "("
1208       R_PAREN@1970..1971 ")"
1209     WHITESPACE@1971..1972 " "
1210     BLOCK_EXPR@1972..2198
1211       STMT_LIST@1972..2198
1212         L_CURLY@1972..1973 "{"
1213         WHITESPACE@1973..1978 "\n    "
1214         EXPR_STMT@1978..2196
1215           MACRO_CALL@1978..2195
1216             PATH@1978..1987
1217               PATH_SEGMENT@1978..1987
1218                 NAME_REF@1978..1987
1219                   IDENT@1978..1987 "assert_eq"
1220             BANG@1987..1988 "!"
1221             TOKEN_TREE@1988..2195
1222               L_PAREN@1988..1989 "("
1223               IDENT@1989..1995 "String"
1224               COLON@1995..1996 ":"
1225               COLON@1996..1997 ":"
1226               IDENT@1997..2001 "from"
1227               TOKEN_TREE@2001..2055
1228                 L_PAREN@2001..2002 "("
1229                 STRING@2002..2054 "\".................... ..."
1230                 R_PAREN@2054..2055 ")"
1231               COMMA@2055..2056 ","
1232               WHITESPACE@2056..2072 "\n               "
1233               IDENT@2072..2078 "format"
1234               BANG@2078..2079 "!"
1235               TOKEN_TREE@2079..2194
1236                 L_PAREN@2079..2080 "("
1237                 STRING@2080..2086 "\"{:?}\""
1238                 COMMA@2086..2087 ","
1239                 WHITESPACE@2087..2088 " "
1240                 DOT@2088..2089 "."
1241                 DOT@2089..2090 "."
1242                 WHITESPACE@2090..2091 " "
1243                 DOT@2091..2092 "."
1244                 DOT@2092..2093 "."
1245                 WHITESPACE@2093..2094 " "
1246                 DOT@2094..2095 "."
1247                 DOT@2095..2096 "."
1248                 WHITESPACE@2096..2097 " "
1249                 DOT@2097..2098 "."
1250                 DOT@2098..2099 "."
1251                 WHITESPACE@2099..2100 " "
1252                 DOT@2100..2101 "."
1253                 DOT@2101..2102 "."
1254                 WHITESPACE@2102..2103 " "
1255                 DOT@2103..2104 "."
1256                 DOT@2104..2105 "."
1257                 WHITESPACE@2105..2106 " "
1258                 DOT@2106..2107 "."
1259                 DOT@2107..2108 "."
1260                 WHITESPACE@2108..2109 " "
1261                 DOT@2109..2110 "."
1262                 DOT@2110..2111 "."
1263                 WHITESPACE@2111..2112 " "
1264                 DOT@2112..2113 "."
1265                 DOT@2113..2114 "."
1266                 WHITESPACE@2114..2115 " "
1267                 DOT@2115..2116 "."
1268                 DOT@2116..2117 "."
1269                 WHITESPACE@2117..2118 " "
1270                 DOT@2118..2119 "."
1271                 DOT@2119..2120 "."
1272                 WHITESPACE@2120..2121 " "
1273                 DOT@2121..2122 "."
1274                 DOT@2122..2123 "."
1275                 WHITESPACE@2123..2124 " "
1276                 DOT@2124..2125 "."
1277                 DOT@2125..2126 "."
1278                 WHITESPACE@2126..2158 "\n                     ..."
1279                 DOT@2158..2159 "."
1280                 DOT@2159..2160 "."
1281                 WHITESPACE@2160..2161 " "
1282                 DOT@2161..2162 "."
1283                 DOT@2162..2163 "."
1284                 WHITESPACE@2163..2164 " "
1285                 DOT@2164..2165 "."
1286                 DOT@2165..2166 "."
1287                 WHITESPACE@2166..2167 " "
1288                 DOT@2167..2168 "."
1289                 DOT@2168..2169 "."
1290                 WHITESPACE@2169..2170 " "
1291                 DOT@2170..2171 "."
1292                 DOT@2171..2172 "."
1293                 WHITESPACE@2172..2173 " "
1294                 DOT@2173..2174 "."
1295                 DOT@2174..2175 "."
1296                 WHITESPACE@2175..2176 " "
1297                 DOT@2176..2177 "."
1298                 DOT@2177..2178 "."
1299                 WHITESPACE@2178..2179 " "
1300                 DOT@2179..2180 "."
1301                 DOT@2180..2181 "."
1302                 WHITESPACE@2181..2182 " "
1303                 DOT@2182..2183 "."
1304                 DOT@2183..2184 "."
1305                 WHITESPACE@2184..2185 " "
1306                 DOT@2185..2186 "."
1307                 DOT@2186..2187 "."
1308                 WHITESPACE@2187..2188 " "
1309                 DOT@2188..2189 "."
1310                 DOT@2189..2190 "."
1311                 WHITESPACE@2190..2191 " "
1312                 DOT@2191..2192 "."
1313                 DOT@2192..2193 "."
1314                 R_PAREN@2193..2194 ")"
1315               R_PAREN@2194..2195 ")"
1316           SEMICOLON@2195..2196 ";"
1317         WHITESPACE@2196..2197 "\n"
1318         R_CURLY@2197..2198 "}"
1319   WHITESPACE@2198..2200 "\n\n"
1320   FN@2200..2693
1321     FN_KW@2200..2202 "fn"
1322     WHITESPACE@2202..2203 " "
1323     NAME@2203..2205
1324       IDENT@2203..2205 "u8"
1325     PARAM_LIST@2205..2213
1326       L_PAREN@2205..2206 "("
1327       PARAM@2206..2212
1328         IDENT_PAT@2206..2208
1329           NAME@2206..2208
1330             IDENT@2206..2208 "u8"
1331         COLON@2208..2209 ":"
1332         WHITESPACE@2209..2210 " "
1333         PATH_TYPE@2210..2212
1334           PATH@2210..2212
1335             PATH_SEGMENT@2210..2212
1336               NAME_REF@2210..2212
1337                 IDENT@2210..2212 "u8"
1338       R_PAREN@2212..2213 ")"
1339     WHITESPACE@2213..2214 " "
1340     BLOCK_EXPR@2214..2693
1341       STMT_LIST@2214..2693
1342         L_CURLY@2214..2215 "{"
1343         WHITESPACE@2215..2220 "\n    "
1344         IF_EXPR@2220..2691
1345           IF_KW@2220..2222 "if"
1346           WHITESPACE@2222..2223 " "
1347           CONDITION@2223..2232
1348             BIN_EXPR@2223..2232
1349               PATH_EXPR@2223..2225
1350                 PATH@2223..2225
1351                   PATH_SEGMENT@2223..2225
1352                     NAME_REF@2223..2225
1353                       IDENT@2223..2225 "u8"
1354               WHITESPACE@2225..2226 " "
1355               NEQ@2226..2228 "!="
1356               WHITESPACE@2228..2229 " "
1357               LITERAL@2229..2232
1358                 INT_NUMBER@2229..2232 "0u8"
1359           WHITESPACE@2232..2233 " "
1360           BLOCK_EXPR@2233..2691
1361             STMT_LIST@2233..2691
1362               L_CURLY@2233..2234 "{"
1363               WHITESPACE@2234..2243 "\n        "
1364               EXPR_STMT@2243..2685
1365                 MACRO_CALL@2243..2684
1366                   PATH@2243..2252
1367                     PATH_SEGMENT@2243..2252
1368                       NAME_REF@2243..2252
1369                         IDENT@2243..2252 "assert_eq"
1370                   BANG@2252..2253 "!"
1371                   TOKEN_TREE@2253..2684
1372                     L_PAREN@2253..2254 "("
1373                     INT_NUMBER@2254..2257 "8u8"
1374                     COMMA@2257..2258 ","
1375                     WHITESPACE@2258..2259 " "
1376                     TOKEN_TREE@2259..2683
1377                       L_CURLY@2259..2260 "{"
1378                       WHITESPACE@2260..2273 "\n            "
1379                       IDENT@2273..2284 "macro_rules"
1380                       BANG@2284..2285 "!"
1381                       WHITESPACE@2285..2286 " "
1382                       IDENT@2286..2288 "u8"
1383                       WHITESPACE@2288..2289 " "
1384                       TOKEN_TREE@2289..2567
1385                         L_CURLY@2289..2290 "{"
1386                         WHITESPACE@2290..2307 "\n                "
1387                         TOKEN_TREE@2307..2311
1388                           L_PAREN@2307..2308 "("
1389                           IDENT@2308..2310 "u8"
1390                           R_PAREN@2310..2311 ")"
1391                         WHITESPACE@2311..2312 " "
1392                         EQ@2312..2313 "="
1393                         R_ANGLE@2313..2314 ">"
1394                         WHITESPACE@2314..2315 " "
1395                         TOKEN_TREE@2315..2552
1396                           L_CURLY@2315..2316 "{"
1397                           WHITESPACE@2316..2337 "\n                    "
1398                           MOD_KW@2337..2340 "mod"
1399                           WHITESPACE@2340..2341 " "
1400                           IDENT@2341..2343 "u8"
1401                           WHITESPACE@2343..2344 " "
1402                           TOKEN_TREE@2344..2534
1403                             L_CURLY@2344..2345 "{"
1404                             WHITESPACE@2345..2370 "\n                     ..."
1405                             PUB_KW@2370..2373 "pub"
1406                             WHITESPACE@2373..2374 " "
1407                             FN_KW@2374..2376 "fn"
1408                             WHITESPACE@2376..2377 " "
1409                             IDENT@2377..2379 "u8"
1410                             L_ANGLE@2379..2380 "<"
1411                             LIFETIME_IDENT@2380..2383 "'u8"
1412                             COLON@2383..2384 ":"
1413                             WHITESPACE@2384..2385 " "
1414                             LIFETIME_IDENT@2385..2388 "'u8"
1415                             WHITESPACE@2388..2389 " "
1416                             PLUS@2389..2390 "+"
1417                             WHITESPACE@2390..2391 " "
1418                             LIFETIME_IDENT@2391..2394 "'u8"
1419                             R_ANGLE@2394..2395 ">"
1420                             TOKEN_TREE@2395..2408
1421                               L_PAREN@2395..2396 "("
1422                               IDENT@2396..2398 "u8"
1423                               COLON@2398..2399 ":"
1424                               WHITESPACE@2399..2400 " "
1425                               AMP@2400..2401 "&"
1426                               LIFETIME_IDENT@2401..2404 "'u8"
1427                               WHITESPACE@2404..2405 " "
1428                               IDENT@2405..2407 "u8"
1429                               R_PAREN@2407..2408 ")"
1430                             WHITESPACE@2408..2409 " "
1431                             MINUS@2409..2410 "-"
1432                             R_ANGLE@2410..2411 ">"
1433                             WHITESPACE@2411..2412 " "
1434                             AMP@2412..2413 "&"
1435                             LIFETIME_IDENT@2413..2416 "'u8"
1436                             WHITESPACE@2416..2417 " "
1437                             IDENT@2417..2419 "u8"
1438                             WHITESPACE@2419..2420 " "
1439                             TOKEN_TREE@2420..2512
1440                               L_CURLY@2420..2421 "{"
1441                               WHITESPACE@2421..2450 "\n                     ..."
1442                               STRING@2450..2454 "\"u8\""
1443                               SEMICOLON@2454..2455 ";"
1444                               WHITESPACE@2455..2484 "\n                     ..."
1445                               IDENT@2484..2486 "u8"
1446                               WHITESPACE@2486..2511 "\n                     ..."
1447                               R_CURLY@2511..2512 "}"
1448                             WHITESPACE@2512..2533 "\n                    "
1449                             R_CURLY@2533..2534 "}"
1450                           WHITESPACE@2534..2551 "\n                "
1451                           R_CURLY@2551..2552 "}"
1452                         SEMICOLON@2552..2553 ";"
1453                         WHITESPACE@2553..2566 "\n            "
1454                         R_CURLY@2566..2567 "}"
1455                       WHITESPACE@2567..2581 "\n\n            "
1456                       IDENT@2581..2583 "u8"
1457                       BANG@2583..2584 "!"
1458                       TOKEN_TREE@2584..2588
1459                         L_PAREN@2584..2585 "("
1460                         IDENT@2585..2587 "u8"
1461                         R_PAREN@2587..2588 ")"
1462                       SEMICOLON@2588..2589 ";"
1463                       WHITESPACE@2589..2602 "\n            "
1464                       LET_KW@2602..2605 "let"
1465                       WHITESPACE@2605..2606 " "
1466                       AMP@2606..2607 "&"
1467                       IDENT@2607..2609 "u8"
1468                       COLON@2609..2610 ":"
1469                       WHITESPACE@2610..2611 " "
1470                       AMP@2611..2612 "&"
1471                       IDENT@2612..2614 "u8"
1472                       WHITESPACE@2614..2615 " "
1473                       EQ@2615..2616 "="
1474                       WHITESPACE@2616..2617 " "
1475                       IDENT@2617..2619 "u8"
1476                       COLON@2619..2620 ":"
1477                       COLON@2620..2621 ":"
1478                       IDENT@2621..2623 "u8"
1479                       TOKEN_TREE@2623..2629
1480                         L_PAREN@2623..2624 "("
1481                         AMP@2624..2625 "&"
1482                         INT_NUMBER@2625..2628 "8u8"
1483                         R_PAREN@2628..2629 ")"
1484                       SEMICOLON@2629..2630 ";"
1485                       WHITESPACE@2630..2643 "\n            "
1486                       CRATE_KW@2643..2648 "crate"
1487                       COLON@2648..2649 ":"
1488                       COLON@2649..2650 ":"
1489                       IDENT@2650..2652 "u8"
1490                       TOKEN_TREE@2652..2657
1491                         L_PAREN@2652..2653 "("
1492                         INT_NUMBER@2653..2656 "0u8"
1493                         R_PAREN@2656..2657 ")"
1494                       SEMICOLON@2657..2658 ";"
1495                       WHITESPACE@2658..2671 "\n            "
1496                       IDENT@2671..2673 "u8"
1497                       WHITESPACE@2673..2682 "\n        "
1498                       R_CURLY@2682..2683 "}"
1499                     R_PAREN@2683..2684 ")"
1500                 SEMICOLON@2684..2685 ";"
1501               WHITESPACE@2685..2690 "\n    "
1502               R_CURLY@2690..2691 "}"
1503         WHITESPACE@2691..2692 "\n"
1504         R_CURLY@2692..2693 "}"
1505   WHITESPACE@2693..2695 "\n\n"
1506   FN@2695..2832
1507     FN_KW@2695..2697 "fn"
1508     WHITESPACE@2697..2698 " "
1509     NAME@2698..2703
1510       IDENT@2698..2703 "fishy"
1511     PARAM_LIST@2703..2705
1512       L_PAREN@2703..2704 "("
1513       R_PAREN@2704..2705 ")"
1514     WHITESPACE@2705..2706 " "
1515     BLOCK_EXPR@2706..2832
1516       STMT_LIST@2706..2832
1517         L_CURLY@2706..2707 "{"
1518         WHITESPACE@2707..2712 "\n    "
1519         EXPR_STMT@2712..2830
1520           MACRO_CALL@2712..2829
1521             PATH@2712..2721
1522               PATH_SEGMENT@2712..2721
1523                 NAME_REF@2712..2721
1524                   IDENT@2712..2721 "assert_eq"
1525             BANG@2721..2722 "!"
1526             TOKEN_TREE@2722..2829
1527               L_PAREN@2722..2723 "("
1528               IDENT@2723..2729 "String"
1529               COLON@2729..2730 ":"
1530               COLON@2730..2731 ":"
1531               IDENT@2731..2735 "from"
1532               TOKEN_TREE@2735..2742
1533                 L_PAREN@2735..2736 "("
1534                 STRING@2736..2741 "\"><>\""
1535                 R_PAREN@2741..2742 ")"
1536               COMMA@2742..2743 ","
1537               WHITESPACE@2743..2759 "\n               "
1538               IDENT@2759..2765 "String"
1539               COLON@2765..2766 ":"
1540               COLON@2766..2767 ":"
1541               L_ANGLE@2767..2768 "<"
1542               R_ANGLE@2768..2769 ">"
1543               COLON@2769..2770 ":"
1544               COLON@2770..2771 ":"
1545               IDENT@2771..2775 "from"
1546               COLON@2775..2776 ":"
1547               COLON@2776..2777 ":"
1548               L_ANGLE@2777..2778 "<"
1549               R_ANGLE@2778..2779 ">"
1550               TOKEN_TREE@2779..2786
1551                 L_PAREN@2779..2780 "("
1552                 STRING@2780..2785 "\"><>\""
1553                 R_PAREN@2785..2786 ")"
1554               DOT@2786..2787 "."
1555               IDENT@2787..2792 "chars"
1556               COLON@2792..2793 ":"
1557               COLON@2793..2794 ":"
1558               L_ANGLE@2794..2795 "<"
1559               R_ANGLE@2795..2796 ">"
1560               TOKEN_TREE@2796..2798
1561                 L_PAREN@2796..2797 "("
1562                 R_PAREN@2797..2798 ")"
1563               DOT@2798..2799 "."
1564               IDENT@2799..2802 "rev"
1565               COLON@2802..2803 ":"
1566               COLON@2803..2804 ":"
1567               L_ANGLE@2804..2805 "<"
1568               R_ANGLE@2805..2806 ">"
1569               TOKEN_TREE@2806..2808
1570                 L_PAREN@2806..2807 "("
1571                 R_PAREN@2807..2808 ")"
1572               DOT@2808..2809 "."
1573               IDENT@2809..2816 "collect"
1574               COLON@2816..2817 ":"
1575               COLON@2817..2818 ":"
1576               L_ANGLE@2818..2819 "<"
1577               IDENT@2819..2825 "String"
1578               R_ANGLE@2825..2826 ">"
1579               TOKEN_TREE@2826..2828
1580                 L_PAREN@2826..2827 "("
1581                 R_PAREN@2827..2828 ")"
1582               R_PAREN@2828..2829 ")"
1583           SEMICOLON@2829..2830 ";"
1584         WHITESPACE@2830..2831 "\n"
1585         R_CURLY@2831..2832 "}"
1586   WHITESPACE@2832..2834 "\n\n"
1587   FN@2834..2906
1588     FN_KW@2834..2836 "fn"
1589     WHITESPACE@2836..2837 " "
1590     NAME@2837..2842
1591       IDENT@2837..2842 "union"
1592     PARAM_LIST@2842..2844
1593       L_PAREN@2842..2843 "("
1594       R_PAREN@2843..2844 ")"
1595     WHITESPACE@2844..2845 " "
1596     BLOCK_EXPR@2845..2906
1597       STMT_LIST@2845..2906
1598         L_CURLY@2845..2846 "{"
1599         WHITESPACE@2846..2851 "\n    "
1600         UNION@2851..2904
1601           UNION_KW@2851..2856 "union"
1602           WHITESPACE@2856..2857 " "
1603           NAME@2857..2862
1604             IDENT@2857..2862 "union"
1605           GENERIC_PARAM_LIST@2862..2870
1606             L_ANGLE@2862..2863 "<"
1607             LIFETIME_PARAM@2863..2869
1608               LIFETIME@2863..2869
1609                 LIFETIME_IDENT@2863..2869 "'union"
1610             R_ANGLE@2869..2870 ">"
1611           WHITESPACE@2870..2871 " "
1612           RECORD_FIELD_LIST@2871..2904
1613             L_CURLY@2871..2872 "{"
1614             WHITESPACE@2872..2873 " "
1615             RECORD_FIELD@2873..2901
1616               NAME@2873..2878
1617                 IDENT@2873..2878 "union"
1618               COLON@2878..2879 ":"
1619               WHITESPACE@2879..2880 " "
1620               REF_TYPE@2880..2901
1621                 AMP@2880..2881 "&"
1622                 LIFETIME@2881..2887
1623                   LIFETIME_IDENT@2881..2887 "'union"
1624                 WHITESPACE@2887..2888 " "
1625                 PATH_TYPE@2888..2901
1626                   PATH@2888..2901
1627                     PATH_SEGMENT@2888..2901
1628                       NAME_REF@2888..2893
1629                         IDENT@2888..2893 "union"
1630                       GENERIC_ARG_LIST@2893..2901
1631                         L_ANGLE@2893..2894 "<"
1632                         LIFETIME_ARG@2894..2900
1633                           LIFETIME@2894..2900
1634                             LIFETIME_IDENT@2894..2900 "'union"
1635                         R_ANGLE@2900..2901 ">"
1636             COMMA@2901..2902 ","
1637             WHITESPACE@2902..2903 " "
1638             R_CURLY@2903..2904 "}"
1639         WHITESPACE@2904..2905 "\n"
1640         R_CURLY@2905..2906 "}"
1641   WHITESPACE@2906..2908 "\n\n"
1642   FN@2908..3042
1643     FN_KW@2908..2910 "fn"
1644     WHITESPACE@2910..2911 " "
1645     NAME@2911..2929
1646       IDENT@2911..2929 "special_characters"
1647     PARAM_LIST@2929..2931
1648       L_PAREN@2929..2930 "("
1649       R_PAREN@2930..2931 ")"
1650     WHITESPACE@2931..2932 " "
1651     BLOCK_EXPR@2932..3042
1652       STMT_LIST@2932..3042
1653         L_CURLY@2932..2933 "{"
1654         WHITESPACE@2933..2938 "\n    "
1655         LET_STMT@2938..3021
1656           LET_KW@2938..2941 "let"
1657           WHITESPACE@2941..2942 " "
1658           IDENT_PAT@2942..2945
1659             NAME@2942..2945
1660               IDENT@2942..2945 "val"
1661           WHITESPACE@2945..2946 " "
1662           EQ@2946..2947 "="
1663           WHITESPACE@2947..2948 " "
1664           PREFIX_EXPR@2948..3013
1665             BANG@2948..2949 "!"
1666             PAREN_EXPR@2949..3013
1667               L_PAREN@2949..2950 "("
1668               BIN_EXPR@2950..3012
1669                 CALL_EXPR@2950..2995
1670                   PAREN_EXPR@2950..2971
1671                     L_PAREN@2950..2951 "("
1672                     CLOSURE_EXPR@2951..2970
1673                       PARAM_LIST@2951..2968
1674                         PIPE@2951..2952 "|"
1675                         PARAM@2952..2962
1676                           TUPLE_PAT@2952..2956
1677                             L_PAREN@2952..2953 "("
1678                             REST_PAT@2953..2955
1679                               DOT2@2953..2955 ".."
1680                             R_PAREN@2955..2956 ")"
1681                           COLON@2956..2957 ":"
1682                           TUPLE_TYPE@2957..2962
1683                             L_PAREN@2957..2958 "("
1684                             INFER_TYPE@2958..2959
1685                               UNDERSCORE@2958..2959 "_"
1686                             COMMA@2959..2960 ","
1687                             INFER_TYPE@2960..2961
1688                               UNDERSCORE@2960..2961 "_"
1689                             R_PAREN@2961..2962 ")"
1690                         COMMA@2962..2963 ","
1691                         PARAM@2963..2967
1692                           IDENT_PAT@2963..2967
1693                             NAME@2963..2965
1694                               IDENT@2963..2965 "__"
1695                             AT@2965..2966 "@"
1696                             WILDCARD_PAT@2966..2967
1697                               UNDERSCORE@2966..2967 "_"
1698                         PIPE@2967..2968 "|"
1699                       PATH_EXPR@2968..2970
1700                         PATH@2968..2970
1701                           PATH_SEGMENT@2968..2970
1702                             NAME_REF@2968..2970
1703                               IDENT@2968..2970 "__"
1704                     R_PAREN@2970..2971 ")"
1705                   ARG_LIST@2971..2995
1706                     L_PAREN@2971..2972 "("
1707                     TUPLE_EXPR@2972..2987
1708                       L_PAREN@2972..2973 "("
1709                       REF_EXPR@2973..2979
1710                         AMP@2973..2974 "&"
1711                         PREFIX_EXPR@2974..2979
1712                           STAR@2974..2975 "*"
1713                           LITERAL@2975..2979
1714                             STRING@2975..2979 "\"\\\\\""
1715                       COMMA@2979..2980 ","
1716                       LITERAL@2980..2986
1717                         CHAR@2980..2986 "'🤔'"
1718                       R_PAREN@2986..2987 ")"
1719                     COMMENT@2987..2991 "/**/"
1720                     COMMA@2991..2992 ","
1721                     BLOCK_EXPR@2992..2994
1722                       STMT_LIST@2992..2994
1723                         L_CURLY@2992..2993 "{"
1724                         R_CURLY@2993..2994 "}"
1725                     R_PAREN@2994..2995 ")"
1726                 EQ2@2995..2997 "=="
1727                 BLOCK_EXPR@2997..3012
1728                   STMT_LIST@2997..3012
1729                     L_CURLY@2997..2998 "{"
1730                     EXPR_STMT@2998..3011
1731                       REF_EXPR@2998..3010
1732                         AMP@2998..2999 "&"
1733                         INDEX_EXPR@2999..3010
1734                           ARRAY_EXPR@2999..3006
1735                             L_BRACK@2999..3000 "["
1736                             RANGE_EXPR@3000..3005
1737                               DOT2EQ@3000..3003 "..="
1738                               RANGE_EXPR@3003..3005
1739                                 DOT2@3003..3005 ".."
1740                             R_BRACK@3005..3006 "]"
1741                           L_BRACK@3006..3007 "["
1742                           RANGE_EXPR@3007..3009
1743                             DOT2@3007..3009 ".."
1744                           R_BRACK@3009..3010 "]"
1745                       SEMICOLON@3010..3011 ";"
1746                     R_CURLY@3011..3012 "}"
1747               R_PAREN@3012..3013 ")"
1748           COMMENT@3013..3015 "//"
1749           WHITESPACE@3015..3020 "\n    "
1750           SEMICOLON@3020..3021 ";"
1751         WHITESPACE@3021..3026 "\n    "
1752         EXPR_STMT@3026..3040
1753           MACRO_CALL@3026..3039
1754             PATH@3026..3032
1755               PATH_SEGMENT@3026..3032
1756                 NAME_REF@3026..3032
1757                   IDENT@3026..3032 "assert"
1758             BANG@3032..3033 "!"
1759             TOKEN_TREE@3033..3039
1760               L_PAREN@3033..3034 "("
1761               BANG@3034..3035 "!"
1762               IDENT@3035..3038 "val"
1763               R_PAREN@3038..3039 ")"
1764           SEMICOLON@3039..3040 ";"
1765         WHITESPACE@3040..3041 "\n"
1766         R_CURLY@3041..3042 "}"
1767   WHITESPACE@3042..3044 "\n\n"
1768   FN@3044..3514
1769     FN_KW@3044..3046 "fn"
1770     WHITESPACE@3046..3047 " "
1771     NAME@3047..3057
1772       IDENT@3047..3057 "punch_card"
1773     PARAM_LIST@3057..3059
1774       L_PAREN@3057..3058 "("
1775       R_PAREN@3058..3059 ")"
1776     WHITESPACE@3059..3060 " "
1777     RET_TYPE@3060..3083
1778       THIN_ARROW@3060..3062 "->"
1779       WHITESPACE@3062..3063 " "
1780       IMPL_TRAIT_TYPE@3063..3083
1781         IMPL_KW@3063..3067 "impl"
1782         WHITESPACE@3067..3068 " "
1783         TYPE_BOUND_LIST@3068..3083
1784           TYPE_BOUND@3068..3083
1785             PATH_TYPE@3068..3083
1786               PATH@3068..3083
1787                 PATH@3068..3076
1788                   PATH@3068..3071
1789                     PATH_SEGMENT@3068..3071
1790                       NAME_REF@3068..3071
1791                         IDENT@3068..3071 "std"
1792                   COLON2@3071..3073 "::"
1793                   PATH_SEGMENT@3073..3076
1794                     NAME_REF@3073..3076
1795                       IDENT@3073..3076 "fmt"
1796                 COLON2@3076..3078 "::"
1797                 PATH_SEGMENT@3078..3083
1798                   NAME_REF@3078..3083
1799                     IDENT@3078..3083 "Debug"
1800     WHITESPACE@3083..3084 " "
1801     BLOCK_EXPR@3084..3514
1802       STMT_LIST@3084..3514
1803         L_CURLY@3084..3085 "{"
1804         WHITESPACE@3085..3090 "\n    "
1805         RANGE_EXPR@3090..3512
1806           DOT2EQ@3090..3093 "..="
1807           RANGE_EXPR@3093..3512
1808             DOT2EQ@3093..3096 "..="
1809             RANGE_EXPR@3096..3512
1810               DOT2@3096..3098 ".."
1811               WHITESPACE@3098..3099 " "
1812               RANGE_EXPR@3099..3512
1813                 DOT2@3099..3101 ".."
1814                 WHITESPACE@3101..3105 "    "
1815                 RANGE_EXPR@3105..3512
1816                   DOT2@3105..3107 ".."
1817                   WHITESPACE@3107..3108 " "
1818                   RANGE_EXPR@3108..3512
1819                     DOT2@3108..3110 ".."
1820                     WHITESPACE@3110..3111 " "
1821                     RANGE_EXPR@3111..3512
1822                       DOT2@3111..3113 ".."
1823                       WHITESPACE@3113..3114 " "
1824                       RANGE_EXPR@3114..3512
1825                         DOT2@3114..3116 ".."
1826                         WHITESPACE@3116..3120 "    "
1827                         RANGE_EXPR@3120..3512
1828                           DOT2@3120..3122 ".."
1829                           WHITESPACE@3122..3123 " "
1830                           RANGE_EXPR@3123..3512
1831                             DOT2@3123..3125 ".."
1832                             WHITESPACE@3125..3126 " "
1833                             RANGE_EXPR@3126..3512
1834                               DOT2@3126..3128 ".."
1835                               WHITESPACE@3128..3129 " "
1836                               RANGE_EXPR@3129..3512
1837                                 DOT2@3129..3131 ".."
1838                                 WHITESPACE@3131..3135 "    "
1839                                 RANGE_EXPR@3135..3512
1840                                   DOT2@3135..3137 ".."
1841                                   WHITESPACE@3137..3138 " "
1842                                   RANGE_EXPR@3138..3512
1843                                     DOT2EQ@3138..3141 "..="
1844                                     RANGE_EXPR@3141..3512
1845                                       DOT2@3141..3143 ".."
1846                                       WHITESPACE@3143..3144 " "
1847                                       RANGE_EXPR@3144..3512
1848                                         DOT2@3144..3146 ".."
1849                                         WHITESPACE@3146..3151 "\n    "
1850                                         RANGE_EXPR@3151..3512
1851                                           DOT2EQ@3151..3154 "..="
1852                                           RANGE_EXPR@3154..3512
1853                                             DOT2@3154..3156 ".."
1854                                             WHITESPACE@3156..3157 " "
1855                                             RANGE_EXPR@3157..3512
1856                                               DOT2EQ@3157..3160 "..="
1857                                               RANGE_EXPR@3160..3512
1858                                                 DOT2@3160..3162 ".."
1859                                                 WHITESPACE@3162..3166 "    "
1860                                                 RANGE_EXPR@3166..3512
1861                                                   DOT2@3166..3168 ".."
1862                                                   WHITESPACE@3168..3169 " "
1863                                                   RANGE_EXPR@3169..3512
1864                                                     DOT2@3169..3171 ".."
1865                                                     WHITESPACE@3171..3172 " "
1866                                                     RANGE_EXPR@3172..3512
1867                                                       DOT2@3172..3174 ".."
1868                                                       WHITESPACE@3174..3175 " "
1869                                                       RANGE_EXPR@3175..3512
1870                                                         DOT2@3175..3177 ".."
1871                                                         WHITESPACE@3177..3181 "    "
1872                                                         RANGE_EXPR@3181..3512
1873                                                           DOT2@3181..3183 ".."
1874                                                           WHITESPACE@3183..3184 " "
1875                                                           RANGE_EXPR@3184..3512
1876                                                             DOT2@3184..3186 ".."
1877                                                             WHITESPACE@3186..3187 " "
1878                                                             RANGE_EXPR@3187..3512
1879                                                               DOT2@3187..3189 ".."
1880                                                               WHITESPACE@3189..3190 " "
1881                                                               RANGE_EXPR@3190..3512
1882                                                                 DOT2@3190..3192 ".."
1883                                                                 WHITESPACE@3192..3196 "    "
1884                                                                 RANGE_EXPR@3196..3512
1885                                                                   DOT2EQ@3196..3199 "..="
1886                                                                   RANGE_EXPR@3199..3512
1887                                                                     DOT2EQ@3199..3202 "..="
1888                                                                     RANGE_EXPR@3202..3512
1889                                                                       DOT2EQ@3202..3205 "..="
1890                                                                       RANGE_EXPR@3205..3512
1891                                                                         DOT2@3205..3207 ".."
1892                                                                         WHITESPACE@3207..3212 "\n    "
1893                                                                         RANGE_EXPR@3212..3512
1894                                                                           DOT2EQ@3212..3215 "..="
1895                                                                           RANGE_EXPR@3215..3512
1896                                                                             DOT2@3215..3217 ".."
1897                                                                             WHITESPACE@3217..3218 " "
1898                                                                             RANGE_EXPR@3218..3512
1899                                                                               DOT2EQ@3218..3221 "..="
1900                                                                               RANGE_EXPR@3221..3512
1901                                                                                 DOT2@3221..3223 ".."
1902                                                                                 WHITESPACE@3223..3227 "    "
1903                                                                                 RANGE_EXPR@3227..3512
1904                                                                                   DOT2EQ@3227..3230 "..="
1905                                                                                   RANGE_EXPR@3230..3512
1906                                                                                     DOT2@3230..3232 ".."
1907                                                                                     WHITESPACE@3232..3233 " "
1908                                                                                     RANGE_EXPR@3233..3512
1909                                                                                       DOT2EQ@3233..3236 "..="
1910                                                                                       RANGE_EXPR@3236..3512
1911                                                                                         DOT2@3236..3238 ".."
1912                                                                                         WHITESPACE@3238..3242 "    "
1913                                                                                         RANGE_EXPR@3242..3512
1914                                                                                           DOT2@3242..3244 ".."
1915                                                                                           WHITESPACE@3244..3245 " "
1916                                                                                           RANGE_EXPR@3245..3512
1917                                                                                             DOT2EQ@3245..3248 "..="
1918                                                                                             RANGE_EXPR@3248..3512
1919                                                                                               DOT2EQ@3248..3251 "..="
1920                                                                                               RANGE_EXPR@3251..3512
1921                                                                                                 DOT2@3251..3253 ".."
1922                                                                                                 WHITESPACE@3253..3257 "    "
1923                                                                                                 RANGE_EXPR@3257..3512
1924                                                                                                   DOT2@3257..3259 ".."
1925                                                                                                   WHITESPACE@3259..3260 " "
1926                                                                                                   RANGE_EXPR@3260..3512
1927                                                                                                     DOT2EQ@3260..3263 "..="
1928                                                                                                     RANGE_EXPR@3263..3512
1929                                                                                                       DOT2@3263..3265 ".."
1930                                                                                                       WHITESPACE@3265..3266 " "
1931                                                                                                       RANGE_EXPR@3266..3512
1932                                                                                                         DOT2@3266..3268 ".."
1933                                                                                                         WHITESPACE@3268..3273 "\n    "
1934                                                                                                         RANGE_EXPR@3273..3512
1935                                                                                                           DOT2EQ@3273..3276 "..="
1936                                                                                                           RANGE_EXPR@3276..3512
1937                                                                                                             DOT2EQ@3276..3279 "..="
1938                                                                                                             RANGE_EXPR@3279..3512
1939                                                                                                               DOT2@3279..3281 ".."
1940                                                                                                               WHITESPACE@3281..3282 " "
1941                                                                                                               RANGE_EXPR@3282..3512
1942                                                                                                                 DOT2@3282..3284 ".."
1943                                                                                                                 WHITESPACE@3284..3288 "    "
1944                                                                                                                 RANGE_EXPR@3288..3512
1945                                                                                                                   DOT2EQ@3288..3291 "..="
1946                                                                                                                   RANGE_EXPR@3291..3512
1947                                                                                                                     DOT2@3291..3293 ".."
1948                                                                                                                     WHITESPACE@3293..3294 " "
1949                                                                                                                     RANGE_EXPR@3294..3512
1950                                                                                                                       DOT2EQ@3294..3297 "..="
1951                                                                                                                       RANGE_EXPR@3297..3512
1952                                                                                                                         DOT2@3297..3299 ".."
1953                                                                                                                         WHITESPACE@3299..3303 "    "
1954                                                                                                                         RANGE_EXPR@3303..3512
1955                                                                                                                           DOT2EQ@3303..3306 "..="
1956                                                                                                                           RANGE_EXPR@3306..3512
1957                                                                                                                             DOT2@3306..3308 ".."
1958                                                                                                                             WHITESPACE@3308..3309 " "
1959                                                                                                                             RANGE_EXPR@3309..3512
1960                                                                                                                               DOT2@3309..3311 ".."
1961                                                                                                                               WHITESPACE@3311..3312 " "
1962                                                                                                                               RANGE_EXPR@3312..3512
1963                                                                                                                                 DOT2@3312..3314 ".."
1964                                                                                                                                 WHITESPACE@3314..3318 "    "
1965                                                                                                                                 RANGE_EXPR@3318..3512
1966                                                                                                                                   DOT2@3318..3320 ".."
1967                                                                                                                                   WHITESPACE@3320..3321 " "
1968                                                                                                                                   RANGE_EXPR@3321..3512
1969                                                                                                                                     DOT2EQ@3321..3324 "..="
1970                                                                                                                                     RANGE_EXPR@3324..3512
1971                                                                                                                                       DOT2@3324..3326 ".."
1972                                                                                                                                       WHITESPACE@3326..3327 " "
1973                                                                                                                                       RANGE_EXPR@3327..3512
1974                                                                                                                                         DOT2@3327..3329 ".."
1975                                                                                                                                         WHITESPACE@3329..3334 "\n    "
1976                                                                                                                                         RANGE_EXPR@3334..3512
1977                                                                                                                                           DOT2EQ@3334..3337 "..="
1978                                                                                                                                           RANGE_EXPR@3337..3512
1979                                                                                                                                             DOT2@3337..3339 ".."
1980                                                                                                                                             WHITESPACE@3339..3340 " "
1981                                                                                                                                             RANGE_EXPR@3340..3512
1982                                                                                                                                               DOT2EQ@3340..3343 "..="
1983                                                                                                                                               RANGE_EXPR@3343..3512
1984                                                                                                                                                 DOT2@3343..3345 ".."
1985                                                                                                                                                 WHITESPACE@3345..3349 "    "
1986                                                                                                                                                 RANGE_EXPR@3349..3512
1987                                                                                                                                                   DOT2EQ@3349..3352 "..="
1988                                                                                                                                                   RANGE_EXPR@3352..3512
1989                                                                                                                                                     DOT2@3352..3354 ".."
1990                                                                                                                                                     WHITESPACE@3354..3355 " "
1991                                                                                                                                                     RANGE_EXPR@3355..3512
1992                                                                                                                                                       DOT2EQ@3355..3358 "..="
1993                                                                                                                                                       RANGE_EXPR@3358..3512
1994                                                                                                                                                         DOT2@3358..3360 ".."
1995                                                                                                                                                         WHITESPACE@3360..3364 "    "
1996                                                                                                                                                         RANGE_EXPR@3364..3512
1997                                                                                                                                                           DOT2@3364..3366 ".."
1998                                                                                                                                                           WHITESPACE@3366..3367 " "
1999                                                                                                                                                           RANGE_EXPR@3367..3512
2000                                                                                                                                                             DOT2EQ@3367..3370 "..="
2001                                                                                                                                                             RANGE_EXPR@3370..3512
2002                                                                                                                                                               DOT2@3370..3372 ".."
2003                                                                                                                                                               WHITESPACE@3372..3373 " "
2004                                                                                                                                                               RANGE_EXPR@3373..3512
2005                                                                                                                                                                 DOT2@3373..3375 ".."
2006                                                                                                                                                                 WHITESPACE@3375..3379 "    "
2007                                                                                                                                                                 RANGE_EXPR@3379..3512
2008                                                                                                                                                                   DOT2@3379..3381 ".."
2009                                                                                                                                                                   WHITESPACE@3381..3382 " "
2010                                                                                                                                                                   RANGE_EXPR@3382..3512
2011                                                                                                                                                                     DOT2EQ@3382..3385 "..="
2012                                                                                                                                                                     RANGE_EXPR@3385..3512
2013                                                                                                                                                                       DOT2@3385..3387 ".."
2014                                                                                                                                                                       WHITESPACE@3387..3388 " "
2015                                                                                                                                                                       RANGE_EXPR@3388..3512
2016                                                                                                                                                                         DOT2@3388..3390 ".."
2017                                                                                                                                                                         WHITESPACE@3390..3395 "\n    "
2018                                                                                                                                                                         RANGE_EXPR@3395..3512
2019                                                                                                                                                                           DOT2EQ@3395..3398 "..="
2020                                                                                                                                                                           RANGE_EXPR@3398..3512
2021                                                                                                                                                                             DOT2@3398..3400 ".."
2022                                                                                                                                                                             WHITESPACE@3400..3401 " "
2023                                                                                                                                                                             RANGE_EXPR@3401..3512
2024                                                                                                                                                                               DOT2EQ@3401..3404 "..="
2025                                                                                                                                                                               RANGE_EXPR@3404..3512
2026                                                                                                                                                                                 DOT2@3404..3406 ".."
2027                                                                                                                                                                                 WHITESPACE@3406..3410 "    "
2028                                                                                                                                                                                 RANGE_EXPR@3410..3512
2029                                                                                                                                                                                   DOT2EQ@3410..3413 "..="
2030                                                                                                                                                                                   RANGE_EXPR@3413..3512
2031                                                                                                                                                                                     DOT2@3413..3415 ".."
2032                                                                                                                                                                                     WHITESPACE@3415..3416 " "
2033                                                                                                                                                                                     RANGE_EXPR@3416..3512
2034                                                                                                                                                                                       DOT2EQ@3416..3419 "..="
2035                                                                                                                                                                                       RANGE_EXPR@3419..3512
2036                                                                                                                                                                                         DOT2@3419..3421 ".."
2037                                                                                                                                                                                         WHITESPACE@3421..3425 "    "
2038                                                                                                                                                                                         RANGE_EXPR@3425..3512
2039                                                                                                                                                                                           DOT2@3425..3427 ".."
2040                                                                                                                                                                                           WHITESPACE@3427..3428 " "
2041                                                                                                                                                                                           RANGE_EXPR@3428..3512
2042                                                                                                                                                                                             DOT2@3428..3430 ".."
2043                                                                                                                                                                                             WHITESPACE@3430..3431 " "
2044                                                                                                                                                                                             RANGE_EXPR@3431..3512
2045                                                                                                                                                                                               DOT2EQ@3431..3434 "..="
2046                                                                                                                                                                                               RANGE_EXPR@3434..3512
2047                                                                                                                                                                                                 DOT2@3434..3436 ".."
2048                                                                                                                                                                                                 WHITESPACE@3436..3440 "    "
2049                                                                                                                                                                                                 RANGE_EXPR@3440..3512
2050                                                                                                                                                                                                   DOT2@3440..3442 ".."
2051                                                                                                                                                                                                   WHITESPACE@3442..3443 " "
2052                                                                                                                                                                                                   RANGE_EXPR@3443..3512
2053                                                                                                                                                                                                     DOT2EQ@3443..3446 "..="
2054                                                                                                                                                                                                     RANGE_EXPR@3446..3512
2055                                                                                                                                                                                                       DOT2@3446..3448 ".."
2056                                                                                                                                                                                                       WHITESPACE@3448..3449 " "
2057                                                                                                                                                                                                       RANGE_EXPR@3449..3512
2058                                                                                                                                                                                                         DOT2@3449..3451 ".."
2059                                                                                                                                                                                                         WHITESPACE@3451..3456 "\n    "
2060                                                                                                                                                                                                         RANGE_EXPR@3456..3512
2061                                                                                                                                                                                                           DOT2EQ@3456..3459 "..="
2062                                                                                                                                                                                                           RANGE_EXPR@3459..3512
2063                                                                                                                                                                                                             DOT2@3459..3461 ".."
2064                                                                                                                                                                                                             WHITESPACE@3461..3462 " "
2065                                                                                                                                                                                                             RANGE_EXPR@3462..3512
2066                                                                                                                                                                                                               DOT2EQ@3462..3465 "..="
2067                                                                                                                                                                                                               RANGE_EXPR@3465..3512
2068                                                                                                                                                                                                                 DOT2@3465..3467 ".."
2069                                                                                                                                                                                                                 WHITESPACE@3467..3471 "    "
2070                                                                                                                                                                                                                 RANGE_EXPR@3471..3512
2071                                                                                                                                                                                                                   DOT2@3471..3473 ".."
2072                                                                                                                                                                                                                   WHITESPACE@3473..3474 " "
2073                                                                                                                                                                                                                   RANGE_EXPR@3474..3512
2074                                                                                                                                                                                                                     DOT2EQ@3474..3477 "..="
2075                                                                                                                                                                                                                     RANGE_EXPR@3477..3512
2076                                                                                                                                                                                                                       DOT2EQ@3477..3480 "..="
2077                                                                                                                                                                                                                       RANGE_EXPR@3480..3512
2078                                                                                                                                                                                                                         DOT2@3480..3482 ".."
2079                                                                                                                                                                                                                         WHITESPACE@3482..3486 "    "
2080                                                                                                                                                                                                                         RANGE_EXPR@3486..3512
2081                                                                                                                                                                                                                           DOT2EQ@3486..3489 "..="
2082                                                                                                                                                                                                                           RANGE_EXPR@3489..3512
2083                                                                                                                                                                                                                             DOT2EQ@3489..3492 "..="
2084                                                                                                                                                                                                                             RANGE_EXPR@3492..3512
2085                                                                                                                                                                                                                               DOT2@3492..3494 ".."
2086                                                                                                                                                                                                                               WHITESPACE@3494..3495 " "
2087                                                                                                                                                                                                                               RANGE_EXPR@3495..3512
2088                                                                                                                                                                                                                                 DOT2@3495..3497 ".."
2089                                                                                                                                                                                                                                 WHITESPACE@3497..3501 "    "
2090                                                                                                                                                                                                                                 RANGE_EXPR@3501..3512
2091                                                                                                                                                                                                                                   DOT2@3501..3503 ".."
2092                                                                                                                                                                                                                                   WHITESPACE@3503..3504 " "
2093                                                                                                                                                                                                                                   RANGE_EXPR@3504..3512
2094                                                                                                                                                                                                                                     DOT2EQ@3504..3507 "..="
2095                                                                                                                                                                                                                                     RANGE_EXPR@3507..3512
2096                                                                                                                                                                                                                                       DOT2@3507..3509 ".."
2097                                                                                                                                                                                                                                       WHITESPACE@3509..3510 " "
2098                                                                                                                                                                                                                                       RANGE_EXPR@3510..3512
2099                                                                                                                                                                                                                                         DOT2@3510..3512 ".."
2100         WHITESPACE@3512..3513 "\n"
2101         R_CURLY@3513..3514 "}"
2102   WHITESPACE@3514..3516 "\n\n"
2103   FN@3516..3552
2104     FN_KW@3516..3518 "fn"
2105     WHITESPACE@3518..3519 " "
2106     NAME@3519..3525
2107       IDENT@3519..3525 "ktulhu"
2108     PARAM_LIST@3525..3527
2109       L_PAREN@3525..3526 "("
2110       R_PAREN@3526..3527 ")"
2111     WHITESPACE@3527..3528 " "
2112     BLOCK_EXPR@3528..3552
2113       STMT_LIST@3528..3552
2114         L_CURLY@3528..3529 "{"
2115         WHITESPACE@3529..3534 "\n    "
2116         SEMICOLON@3534..3535 ";"
2117         SEMICOLON@3535..3536 ";"
2118         SEMICOLON@3536..3537 ";"
2119         EXPR_STMT@3537..3540
2120           TUPLE_EXPR@3537..3539
2121             L_PAREN@3537..3538 "("
2122             R_PAREN@3538..3539 ")"
2123           SEMICOLON@3539..3540 ";"
2124         SEMICOLON@3540..3541 ";"
2125         SEMICOLON@3541..3542 ";"
2126         SEMICOLON@3542..3543 ";"
2127         SEMICOLON@3543..3544 ";"
2128         SEMICOLON@3544..3545 ";"
2129         SEMICOLON@3545..3546 ";"
2130         SEMICOLON@3546..3547 ";"
2131         SEMICOLON@3547..3548 ";"
2132         TUPLE_EXPR@3548..3550
2133           L_PAREN@3548..3549 "("
2134           R_PAREN@3549..3550 ")"
2135         WHITESPACE@3550..3551 "\n"
2136         R_CURLY@3551..3552 "}"
2137   WHITESPACE@3552..3554 "\n\n"
2138   FN@3554..3812
2139     VISIBILITY@3554..3557
2140       PUB_KW@3554..3557 "pub"
2141     WHITESPACE@3557..3558 " "
2142     FN_KW@3558..3560 "fn"
2143     WHITESPACE@3560..3561 " "
2144     NAME@3561..3565
2145       IDENT@3561..3565 "main"
2146     PARAM_LIST@3565..3567
2147       L_PAREN@3565..3566 "("
2148       R_PAREN@3566..3567 ")"
2149     WHITESPACE@3567..3568 " "
2150     BLOCK_EXPR@3568..3812
2151       STMT_LIST@3568..3812
2152         L_CURLY@3568..3569 "{"
2153         WHITESPACE@3569..3574 "\n    "
2154         EXPR_STMT@3574..3584
2155           CALL_EXPR@3574..3583
2156             PATH_EXPR@3574..3581
2157               PATH@3574..3581
2158                 PATH_SEGMENT@3574..3581
2159                   NAME_REF@3574..3581
2160                     IDENT@3574..3581 "strange"
2161             ARG_LIST@3581..3583
2162               L_PAREN@3581..3582 "("
2163               R_PAREN@3582..3583 ")"
2164           SEMICOLON@3583..3584 ";"
2165         WHITESPACE@3584..3589 "\n    "
2166         EXPR_STMT@3589..3597
2167           CALL_EXPR@3589..3596
2168             PATH_EXPR@3589..3594
2169               PATH@3589..3594
2170                 PATH_SEGMENT@3589..3594
2171                   NAME_REF@3589..3594
2172                     IDENT@3589..3594 "funny"
2173             ARG_LIST@3594..3596
2174               L_PAREN@3594..3595 "("
2175               R_PAREN@3595..3596 ")"
2176           SEMICOLON@3596..3597 ";"
2177         WHITESPACE@3597..3602 "\n    "
2178         EXPR_STMT@3602..3609
2179           CALL_EXPR@3602..3608
2180             PATH_EXPR@3602..3606
2181               PATH@3602..3606
2182                 PATH_SEGMENT@3602..3606
2183                   NAME_REF@3602..3606
2184                     IDENT@3602..3606 "what"
2185             ARG_LIST@3606..3608
2186               L_PAREN@3606..3607 "("
2187               R_PAREN@3607..3608 ")"
2188           SEMICOLON@3608..3609 ";"
2189         WHITESPACE@3609..3614 "\n    "
2190         EXPR_STMT@3614..3628
2191           CALL_EXPR@3614..3627
2192             PATH_EXPR@3614..3625
2193               PATH@3614..3625
2194                 PATH_SEGMENT@3614..3625
2195                   NAME_REF@3614..3625
2196                     IDENT@3614..3625 "zombiejesus"
2197             ARG_LIST@3625..3627
2198               L_PAREN@3625..3626 "("
2199               R_PAREN@3626..3627 ")"
2200           SEMICOLON@3627..3628 ";"
2201         WHITESPACE@3628..3633 "\n    "
2202         EXPR_STMT@3633..3643
2203           CALL_EXPR@3633..3642
2204             PATH_EXPR@3633..3640
2205               PATH@3633..3640
2206                 PATH_SEGMENT@3633..3640
2207                   NAME_REF@3633..3640
2208                     IDENT@3633..3640 "notsure"
2209             ARG_LIST@3640..3642
2210               L_PAREN@3640..3641 "("
2211               R_PAREN@3641..3642 ")"
2212           SEMICOLON@3642..3643 ";"
2213         WHITESPACE@3643..3648 "\n    "
2214         EXPR_STMT@3648..3664
2215           CALL_EXPR@3648..3663
2216             PATH_EXPR@3648..3661
2217               PATH@3648..3661
2218                 PATH_SEGMENT@3648..3661
2219                   NAME_REF@3648..3661
2220                     IDENT@3648..3661 "canttouchthis"
2221             ARG_LIST@3661..3663
2222               L_PAREN@3661..3662 "("
2223               R_PAREN@3662..3663 ")"
2224           SEMICOLON@3663..3664 ";"
2225         WHITESPACE@3664..3669 "\n    "
2226         EXPR_STMT@3669..3681
2227           CALL_EXPR@3669..3680
2228             PATH_EXPR@3669..3678
2229               PATH@3669..3678
2230                 PATH_SEGMENT@3669..3678
2231                   NAME_REF@3669..3678
2232                     IDENT@3669..3678 "angrydome"
2233             ARG_LIST@3678..3680
2234               L_PAREN@3678..3679 "("
2235               R_PAREN@3679..3680 ")"
2236           SEMICOLON@3680..3681 ";"
2237         WHITESPACE@3681..3686 "\n    "
2238         EXPR_STMT@3686..3701
2239           CALL_EXPR@3686..3700
2240             PATH_EXPR@3686..3698
2241               PATH@3686..3698
2242                 PATH_SEGMENT@3686..3698
2243                   NAME_REF@3686..3698
2244                     IDENT@3686..3698 "evil_lincoln"
2245             ARG_LIST@3698..3700
2246               L_PAREN@3698..3699 "("
2247               R_PAREN@3699..3700 ")"
2248           SEMICOLON@3700..3701 ";"
2249         WHITESPACE@3701..3706 "\n    "
2250         EXPR_STMT@3706..3713
2251           CALL_EXPR@3706..3712
2252             PATH_EXPR@3706..3710
2253               PATH@3706..3710
2254                 PATH_SEGMENT@3706..3710
2255                   NAME_REF@3706..3710
2256                     IDENT@3706..3710 "dots"
2257             ARG_LIST@3710..3712
2258               L_PAREN@3710..3711 "("
2259               R_PAREN@3711..3712 ")"
2260           SEMICOLON@3712..3713 ";"
2261         WHITESPACE@3713..3718 "\n    "
2262         EXPR_STMT@3718..3726
2263           CALL_EXPR@3718..3725
2264             PATH_EXPR@3718..3720
2265               PATH@3718..3720
2266                 PATH_SEGMENT@3718..3720
2267                   NAME_REF@3718..3720
2268                     IDENT@3718..3720 "u8"
2269             ARG_LIST@3720..3725
2270               L_PAREN@3720..3721 "("
2271               LITERAL@3721..3724
2272                 INT_NUMBER@3721..3724 "8u8"
2273               R_PAREN@3724..3725 ")"
2274           SEMICOLON@3725..3726 ";"
2275         WHITESPACE@3726..3731 "\n    "
2276         EXPR_STMT@3731..3739
2277           CALL_EXPR@3731..3738
2278             PATH_EXPR@3731..3736
2279               PATH@3731..3736
2280                 PATH_SEGMENT@3731..3736
2281                   NAME_REF@3731..3736
2282                     IDENT@3731..3736 "fishy"
2283             ARG_LIST@3736..3738
2284               L_PAREN@3736..3737 "("
2285               R_PAREN@3737..3738 ")"
2286           SEMICOLON@3738..3739 ";"
2287         WHITESPACE@3739..3744 "\n    "
2288         EXPR_STMT@3744..3752
2289           CALL_EXPR@3744..3751
2290             PATH_EXPR@3744..3749
2291               PATH@3744..3749
2292                 PATH_SEGMENT@3744..3749
2293                   NAME_REF@3744..3749
2294                     IDENT@3744..3749 "union"
2295             ARG_LIST@3749..3751
2296               L_PAREN@3749..3750 "("
2297               R_PAREN@3750..3751 ")"
2298           SEMICOLON@3751..3752 ";"
2299         WHITESPACE@3752..3757 "\n    "
2300         EXPR_STMT@3757..3778
2301           CALL_EXPR@3757..3777
2302             PATH_EXPR@3757..3775
2303               PATH@3757..3775
2304                 PATH_SEGMENT@3757..3775
2305                   NAME_REF@3757..3775
2306                     IDENT@3757..3775 "special_characters"
2307             ARG_LIST@3775..3777
2308               L_PAREN@3775..3776 "("
2309               R_PAREN@3776..3777 ")"
2310           SEMICOLON@3777..3778 ";"
2311         WHITESPACE@3778..3783 "\n    "
2312         EXPR_STMT@3783..3796
2313           CALL_EXPR@3783..3795
2314             PATH_EXPR@3783..3793
2315               PATH@3783..3793
2316                 PATH_SEGMENT@3783..3793
2317                   NAME_REF@3783..3793
2318                     IDENT@3783..3793 "punch_card"
2319             ARG_LIST@3793..3795
2320               L_PAREN@3793..3794 "("
2321               R_PAREN@3794..3795 ")"
2322           SEMICOLON@3795..3796 ";"
2323         WHITESPACE@3796..3801 "\n    "
2324         EXPR_STMT@3801..3810
2325           CALL_EXPR@3801..3809
2326             PATH_EXPR@3801..3807
2327               PATH@3801..3807
2328                 PATH_SEGMENT@3801..3807
2329                   NAME_REF@3801..3807
2330                     IDENT@3801..3807 "ktulhu"
2331             ARG_LIST@3807..3809
2332               L_PAREN@3807..3808 "("
2333               R_PAREN@3808..3809 ")"
2334           SEMICOLON@3809..3810 ";"
2335         WHITESPACE@3810..3811 "\n"
2336         R_CURLY@3811..3812 "}"
2337   WHITESPACE@3812..3813 "\n"