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