diff options
author | bors[bot] <bors[bot]@users.noreply.github.com> | 2019-02-17 18:39:26 +0000 |
---|---|---|
committer | bors[bot] <bors[bot]@users.noreply.github.com> | 2019-02-17 18:39:26 +0000 |
commit | 646b53ace30660935641932c043301e3cdd4e71f (patch) | |
tree | 42f94aa460aa4233ad4372044faa6e2a27842ed1 /crates/ra_syntax/tests/data | |
parent | 3dcde0b2ab8bc28dc8ef98ec07cb6d1072b93de8 (diff) | |
parent | bb259587056faa3a76eed6e7dae487e1848d841a (diff) |
Merge #846
846: WIP: Enable parsing of attributes inside a match block r=matklad a=vipentti
We allow invalid inner attributes to be parsed, e.g. inner attributes that are
not directly after the opening brace of the match block.
Instead we run validation on `MatchArmList` to allow better reporting of errors.
This fixes #845 and works towards #759
Co-authored-by: Ville Penttinen <[email protected]>
Diffstat (limited to 'crates/ra_syntax/tests/data')
8 files changed, 521 insertions, 0 deletions
diff --git a/crates/ra_syntax/tests/data/parser/err/0032_match_arms_inner_attrs.rs b/crates/ra_syntax/tests/data/parser/err/0032_match_arms_inner_attrs.rs new file mode 100644 index 000000000..06aa47770 --- /dev/null +++ b/crates/ra_syntax/tests/data/parser/err/0032_match_arms_inner_attrs.rs | |||
@@ -0,0 +1,20 @@ | |||
1 | fn foo() { | ||
2 | match () { | ||
3 | _ => (), | ||
4 | #![doc("Not allowed here")] | ||
5 | _ => (), | ||
6 | } | ||
7 | |||
8 | match () { | ||
9 | _ => (), | ||
10 | _ => (), | ||
11 | #![doc("Nor here")] | ||
12 | } | ||
13 | |||
14 | match () { | ||
15 | #[cfg(test)] | ||
16 | #![doc("Nor here")] | ||
17 | _ => (), | ||
18 | _ => (), | ||
19 | } | ||
20 | } | ||
diff --git a/crates/ra_syntax/tests/data/parser/err/0032_match_arms_inner_attrs.txt b/crates/ra_syntax/tests/data/parser/err/0032_match_arms_inner_attrs.txt new file mode 100644 index 000000000..b7543abc9 --- /dev/null +++ b/crates/ra_syntax/tests/data/parser/err/0032_match_arms_inner_attrs.txt | |||
@@ -0,0 +1,201 @@ | |||
1 | SOURCE_FILE@[0; 293) | ||
2 | FN_DEF@[0; 292) | ||
3 | FN_KW@[0; 2) | ||
4 | WHITESPACE@[2; 3) | ||
5 | NAME@[3; 6) | ||
6 | IDENT@[3; 6) "foo" | ||
7 | PARAM_LIST@[6; 8) | ||
8 | L_PAREN@[6; 7) | ||
9 | R_PAREN@[7; 8) | ||
10 | WHITESPACE@[8; 9) | ||
11 | BLOCK@[9; 292) | ||
12 | L_CURLY@[9; 10) | ||
13 | WHITESPACE@[10; 15) | ||
14 | EXPR_STMT@[15; 101) | ||
15 | MATCH_EXPR@[15; 101) | ||
16 | MATCH_KW@[15; 20) | ||
17 | WHITESPACE@[20; 21) | ||
18 | TUPLE_EXPR@[21; 23) | ||
19 | L_PAREN@[21; 22) | ||
20 | R_PAREN@[22; 23) | ||
21 | WHITESPACE@[23; 24) | ||
22 | MATCH_ARM_LIST@[24; 101) | ||
23 | L_CURLY@[24; 25) | ||
24 | WHITESPACE@[25; 34) | ||
25 | MATCH_ARM@[34; 41) | ||
26 | PLACEHOLDER_PAT@[34; 35) | ||
27 | UNDERSCORE@[34; 35) | ||
28 | WHITESPACE@[35; 36) | ||
29 | FAT_ARROW@[36; 38) | ||
30 | WHITESPACE@[38; 39) | ||
31 | TUPLE_EXPR@[39; 41) | ||
32 | L_PAREN@[39; 40) | ||
33 | R_PAREN@[40; 41) | ||
34 | COMMA@[41; 42) | ||
35 | WHITESPACE@[42; 51) | ||
36 | ATTR@[51; 52) | ||
37 | POUND@[51; 52) | ||
38 | err: `expected `[`` | ||
39 | err: `expected pattern` | ||
40 | MATCH_ARM@[52; 78) | ||
41 | ERROR@[52; 53) | ||
42 | EXCL@[52; 53) | ||
43 | err: `expected FAT_ARROW` | ||
44 | ARRAY_EXPR@[53; 78) | ||
45 | L_BRACK@[53; 54) | ||
46 | CALL_EXPR@[54; 77) | ||
47 | PATH_EXPR@[54; 57) | ||
48 | PATH@[54; 57) | ||
49 | PATH_SEGMENT@[54; 57) | ||
50 | NAME_REF@[54; 57) | ||
51 | IDENT@[54; 57) "doc" | ||
52 | ARG_LIST@[57; 77) | ||
53 | L_PAREN@[57; 58) | ||
54 | LITERAL@[58; 76) | ||
55 | STRING@[58; 76) | ||
56 | R_PAREN@[76; 77) | ||
57 | R_BRACK@[77; 78) | ||
58 | err: `expected COMMA` | ||
59 | WHITESPACE@[78; 87) | ||
60 | MATCH_ARM@[87; 94) | ||
61 | PLACEHOLDER_PAT@[87; 88) | ||
62 | UNDERSCORE@[87; 88) | ||
63 | WHITESPACE@[88; 89) | ||
64 | FAT_ARROW@[89; 91) | ||
65 | WHITESPACE@[91; 92) | ||
66 | TUPLE_EXPR@[92; 94) | ||
67 | L_PAREN@[92; 93) | ||
68 | R_PAREN@[93; 94) | ||
69 | COMMA@[94; 95) | ||
70 | WHITESPACE@[95; 100) | ||
71 | R_CURLY@[100; 101) | ||
72 | WHITESPACE@[101; 107) | ||
73 | EXPR_STMT@[107; 185) | ||
74 | MATCH_EXPR@[107; 185) | ||
75 | MATCH_KW@[107; 112) | ||
76 | WHITESPACE@[112; 113) | ||
77 | TUPLE_EXPR@[113; 115) | ||
78 | L_PAREN@[113; 114) | ||
79 | R_PAREN@[114; 115) | ||
80 | WHITESPACE@[115; 116) | ||
81 | MATCH_ARM_LIST@[116; 185) | ||
82 | L_CURLY@[116; 117) | ||
83 | WHITESPACE@[117; 126) | ||
84 | MATCH_ARM@[126; 133) | ||
85 | PLACEHOLDER_PAT@[126; 127) | ||
86 | UNDERSCORE@[126; 127) | ||
87 | WHITESPACE@[127; 128) | ||
88 | FAT_ARROW@[128; 130) | ||
89 | WHITESPACE@[130; 131) | ||
90 | TUPLE_EXPR@[131; 133) | ||
91 | L_PAREN@[131; 132) | ||
92 | R_PAREN@[132; 133) | ||
93 | COMMA@[133; 134) | ||
94 | WHITESPACE@[134; 143) | ||
95 | MATCH_ARM@[143; 150) | ||
96 | PLACEHOLDER_PAT@[143; 144) | ||
97 | UNDERSCORE@[143; 144) | ||
98 | WHITESPACE@[144; 145) | ||
99 | FAT_ARROW@[145; 147) | ||
100 | WHITESPACE@[147; 148) | ||
101 | TUPLE_EXPR@[148; 150) | ||
102 | L_PAREN@[148; 149) | ||
103 | R_PAREN@[149; 150) | ||
104 | COMMA@[150; 151) | ||
105 | WHITESPACE@[151; 160) | ||
106 | ATTR@[160; 161) | ||
107 | POUND@[160; 161) | ||
108 | err: `expected `[`` | ||
109 | err: `expected pattern` | ||
110 | MATCH_ARM@[161; 179) | ||
111 | ERROR@[161; 162) | ||
112 | EXCL@[161; 162) | ||
113 | err: `expected FAT_ARROW` | ||
114 | ARRAY_EXPR@[162; 179) | ||
115 | L_BRACK@[162; 163) | ||
116 | CALL_EXPR@[163; 178) | ||
117 | PATH_EXPR@[163; 166) | ||
118 | PATH@[163; 166) | ||
119 | PATH_SEGMENT@[163; 166) | ||
120 | NAME_REF@[163; 166) | ||
121 | IDENT@[163; 166) "doc" | ||
122 | ARG_LIST@[166; 178) | ||
123 | L_PAREN@[166; 167) | ||
124 | LITERAL@[167; 177) | ||
125 | STRING@[167; 177) | ||
126 | R_PAREN@[177; 178) | ||
127 | R_BRACK@[178; 179) | ||
128 | WHITESPACE@[179; 184) | ||
129 | R_CURLY@[184; 185) | ||
130 | WHITESPACE@[185; 191) | ||
131 | MATCH_EXPR@[191; 290) | ||
132 | MATCH_KW@[191; 196) | ||
133 | WHITESPACE@[196; 197) | ||
134 | TUPLE_EXPR@[197; 199) | ||
135 | L_PAREN@[197; 198) | ||
136 | R_PAREN@[198; 199) | ||
137 | WHITESPACE@[199; 200) | ||
138 | MATCH_ARM_LIST@[200; 290) | ||
139 | L_CURLY@[200; 201) | ||
140 | WHITESPACE@[201; 210) | ||
141 | ATTR@[210; 222) | ||
142 | POUND@[210; 211) | ||
143 | TOKEN_TREE@[211; 222) | ||
144 | L_BRACK@[211; 212) | ||
145 | IDENT@[212; 215) "cfg" | ||
146 | TOKEN_TREE@[215; 221) | ||
147 | L_PAREN@[215; 216) | ||
148 | IDENT@[216; 220) "test" | ||
149 | R_PAREN@[220; 221) | ||
150 | R_BRACK@[221; 222) | ||
151 | WHITESPACE@[222; 231) | ||
152 | ATTR@[231; 232) | ||
153 | POUND@[231; 232) | ||
154 | err: `expected `[`` | ||
155 | err: `expected pattern` | ||
156 | MATCH_ARM@[232; 250) | ||
157 | ERROR@[232; 233) | ||
158 | EXCL@[232; 233) | ||
159 | err: `expected FAT_ARROW` | ||
160 | ARRAY_EXPR@[233; 250) | ||
161 | L_BRACK@[233; 234) | ||
162 | CALL_EXPR@[234; 249) | ||
163 | PATH_EXPR@[234; 237) | ||
164 | PATH@[234; 237) | ||
165 | PATH_SEGMENT@[234; 237) | ||
166 | NAME_REF@[234; 237) | ||
167 | IDENT@[234; 237) "doc" | ||
168 | ARG_LIST@[237; 249) | ||
169 | L_PAREN@[237; 238) | ||
170 | LITERAL@[238; 248) | ||
171 | STRING@[238; 248) | ||
172 | R_PAREN@[248; 249) | ||
173 | R_BRACK@[249; 250) | ||
174 | err: `expected COMMA` | ||
175 | WHITESPACE@[250; 259) | ||
176 | MATCH_ARM@[259; 266) | ||
177 | PLACEHOLDER_PAT@[259; 260) | ||
178 | UNDERSCORE@[259; 260) | ||
179 | WHITESPACE@[260; 261) | ||
180 | FAT_ARROW@[261; 263) | ||
181 | WHITESPACE@[263; 264) | ||
182 | TUPLE_EXPR@[264; 266) | ||
183 | L_PAREN@[264; 265) | ||
184 | R_PAREN@[265; 266) | ||
185 | COMMA@[266; 267) | ||
186 | WHITESPACE@[267; 276) | ||
187 | MATCH_ARM@[276; 283) | ||
188 | PLACEHOLDER_PAT@[276; 277) | ||
189 | UNDERSCORE@[276; 277) | ||
190 | WHITESPACE@[277; 278) | ||
191 | FAT_ARROW@[278; 280) | ||
192 | WHITESPACE@[280; 281) | ||
193 | TUPLE_EXPR@[281; 283) | ||
194 | L_PAREN@[281; 282) | ||
195 | R_PAREN@[282; 283) | ||
196 | COMMA@[283; 284) | ||
197 | WHITESPACE@[284; 289) | ||
198 | R_CURLY@[289; 290) | ||
199 | WHITESPACE@[290; 291) | ||
200 | R_CURLY@[291; 292) | ||
201 | WHITESPACE@[292; 293) | ||
diff --git a/crates/ra_syntax/tests/data/parser/err/0033_match_arms_outer_attrs.rs b/crates/ra_syntax/tests/data/parser/err/0033_match_arms_outer_attrs.rs new file mode 100644 index 000000000..4635222da --- /dev/null +++ b/crates/ra_syntax/tests/data/parser/err/0033_match_arms_outer_attrs.rs | |||
@@ -0,0 +1,7 @@ | |||
1 | fn foo() { | ||
2 | match () { | ||
3 | _ => (), | ||
4 | _ => (), | ||
5 | #[cfg(test)] | ||
6 | } | ||
7 | } | ||
diff --git a/crates/ra_syntax/tests/data/parser/err/0033_match_arms_outer_attrs.txt b/crates/ra_syntax/tests/data/parser/err/0033_match_arms_outer_attrs.txt new file mode 100644 index 000000000..7f8767001 --- /dev/null +++ b/crates/ra_syntax/tests/data/parser/err/0033_match_arms_outer_attrs.txt | |||
@@ -0,0 +1,64 @@ | |||
1 | SOURCE_FILE@[0; 89) | ||
2 | FN_DEF@[0; 88) | ||
3 | FN_KW@[0; 2) | ||
4 | WHITESPACE@[2; 3) | ||
5 | NAME@[3; 6) | ||
6 | IDENT@[3; 6) "foo" | ||
7 | PARAM_LIST@[6; 8) | ||
8 | L_PAREN@[6; 7) | ||
9 | R_PAREN@[7; 8) | ||
10 | WHITESPACE@[8; 9) | ||
11 | BLOCK@[9; 88) | ||
12 | L_CURLY@[9; 10) | ||
13 | WHITESPACE@[10; 15) | ||
14 | MATCH_EXPR@[15; 86) | ||
15 | MATCH_KW@[15; 20) | ||
16 | WHITESPACE@[20; 21) | ||
17 | TUPLE_EXPR@[21; 23) | ||
18 | L_PAREN@[21; 22) | ||
19 | R_PAREN@[22; 23) | ||
20 | WHITESPACE@[23; 24) | ||
21 | MATCH_ARM_LIST@[24; 86) | ||
22 | L_CURLY@[24; 25) | ||
23 | WHITESPACE@[25; 34) | ||
24 | MATCH_ARM@[34; 41) | ||
25 | PLACEHOLDER_PAT@[34; 35) | ||
26 | UNDERSCORE@[34; 35) | ||
27 | WHITESPACE@[35; 36) | ||
28 | FAT_ARROW@[36; 38) | ||
29 | WHITESPACE@[38; 39) | ||
30 | TUPLE_EXPR@[39; 41) | ||
31 | L_PAREN@[39; 40) | ||
32 | R_PAREN@[40; 41) | ||
33 | COMMA@[41; 42) | ||
34 | WHITESPACE@[42; 51) | ||
35 | MATCH_ARM@[51; 58) | ||
36 | PLACEHOLDER_PAT@[51; 52) | ||
37 | UNDERSCORE@[51; 52) | ||
38 | WHITESPACE@[52; 53) | ||
39 | FAT_ARROW@[53; 55) | ||
40 | WHITESPACE@[55; 56) | ||
41 | TUPLE_EXPR@[56; 58) | ||
42 | L_PAREN@[56; 57) | ||
43 | R_PAREN@[57; 58) | ||
44 | COMMA@[58; 59) | ||
45 | WHITESPACE@[59; 68) | ||
46 | ATTR@[68; 80) | ||
47 | POUND@[68; 69) | ||
48 | TOKEN_TREE@[69; 80) | ||
49 | L_BRACK@[69; 70) | ||
50 | IDENT@[70; 73) "cfg" | ||
51 | TOKEN_TREE@[73; 79) | ||
52 | L_PAREN@[73; 74) | ||
53 | IDENT@[74; 78) "test" | ||
54 | R_PAREN@[78; 79) | ||
55 | R_BRACK@[79; 80) | ||
56 | WHITESPACE@[80; 85) | ||
57 | err: `expected pattern` | ||
58 | err: `expected FAT_ARROW` | ||
59 | err: `expected expression` | ||
60 | MATCH_ARM@[85; 85) | ||
61 | R_CURLY@[85; 86) | ||
62 | WHITESPACE@[86; 87) | ||
63 | R_CURLY@[87; 88) | ||
64 | WHITESPACE@[88; 89) | ||
diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0120_match_arms_inner_attribute.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0120_match_arms_inner_attribute.rs new file mode 100644 index 000000000..54a67c9d7 --- /dev/null +++ b/crates/ra_syntax/tests/data/parser/inline/ok/0120_match_arms_inner_attribute.rs | |||
@@ -0,0 +1,8 @@ | |||
1 | fn foo() { | ||
2 | match () { | ||
3 | #![doc("Inner attribute")] | ||
4 | #![doc("Can be")] | ||
5 | #![doc("Stacked")] | ||
6 | _ => (), | ||
7 | } | ||
8 | } | ||
diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0120_match_arms_inner_attribute.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0120_match_arms_inner_attribute.txt new file mode 100644 index 000000000..b39a217bd --- /dev/null +++ b/crates/ra_syntax/tests/data/parser/inline/ok/0120_match_arms_inner_attribute.txt | |||
@@ -0,0 +1,74 @@ | |||
1 | SOURCE_FILE@[0; 139) | ||
2 | FN_DEF@[0; 138) | ||
3 | FN_KW@[0; 2) | ||
4 | WHITESPACE@[2; 3) | ||
5 | NAME@[3; 6) | ||
6 | IDENT@[3; 6) "foo" | ||
7 | PARAM_LIST@[6; 8) | ||
8 | L_PAREN@[6; 7) | ||
9 | R_PAREN@[7; 8) | ||
10 | WHITESPACE@[8; 9) | ||
11 | BLOCK@[9; 138) | ||
12 | L_CURLY@[9; 10) | ||
13 | WHITESPACE@[10; 15) | ||
14 | MATCH_EXPR@[15; 136) | ||
15 | MATCH_KW@[15; 20) | ||
16 | WHITESPACE@[20; 21) | ||
17 | TUPLE_EXPR@[21; 23) | ||
18 | L_PAREN@[21; 22) | ||
19 | R_PAREN@[22; 23) | ||
20 | WHITESPACE@[23; 24) | ||
21 | MATCH_ARM_LIST@[24; 136) | ||
22 | L_CURLY@[24; 25) | ||
23 | WHITESPACE@[25; 34) | ||
24 | ATTR@[34; 60) | ||
25 | POUND@[34; 35) | ||
26 | EXCL@[35; 36) | ||
27 | TOKEN_TREE@[36; 60) | ||
28 | L_BRACK@[36; 37) | ||
29 | IDENT@[37; 40) "doc" | ||
30 | TOKEN_TREE@[40; 59) | ||
31 | L_PAREN@[40; 41) | ||
32 | STRING@[41; 58) | ||
33 | R_PAREN@[58; 59) | ||
34 | R_BRACK@[59; 60) | ||
35 | WHITESPACE@[60; 69) | ||
36 | ATTR@[69; 86) | ||
37 | POUND@[69; 70) | ||
38 | EXCL@[70; 71) | ||
39 | TOKEN_TREE@[71; 86) | ||
40 | L_BRACK@[71; 72) | ||
41 | IDENT@[72; 75) "doc" | ||
42 | TOKEN_TREE@[75; 85) | ||
43 | L_PAREN@[75; 76) | ||
44 | STRING@[76; 84) | ||
45 | R_PAREN@[84; 85) | ||
46 | R_BRACK@[85; 86) | ||
47 | WHITESPACE@[86; 95) | ||
48 | ATTR@[95; 113) | ||
49 | POUND@[95; 96) | ||
50 | EXCL@[96; 97) | ||
51 | TOKEN_TREE@[97; 113) | ||
52 | L_BRACK@[97; 98) | ||
53 | IDENT@[98; 101) "doc" | ||
54 | TOKEN_TREE@[101; 112) | ||
55 | L_PAREN@[101; 102) | ||
56 | STRING@[102; 111) | ||
57 | R_PAREN@[111; 112) | ||
58 | R_BRACK@[112; 113) | ||
59 | WHITESPACE@[113; 122) | ||
60 | MATCH_ARM@[122; 129) | ||
61 | PLACEHOLDER_PAT@[122; 123) | ||
62 | UNDERSCORE@[122; 123) | ||
63 | WHITESPACE@[123; 124) | ||
64 | FAT_ARROW@[124; 126) | ||
65 | WHITESPACE@[126; 127) | ||
66 | TUPLE_EXPR@[127; 129) | ||
67 | L_PAREN@[127; 128) | ||
68 | R_PAREN@[128; 129) | ||
69 | COMMA@[129; 130) | ||
70 | WHITESPACE@[130; 135) | ||
71 | R_CURLY@[135; 136) | ||
72 | WHITESPACE@[136; 137) | ||
73 | R_CURLY@[137; 138) | ||
74 | WHITESPACE@[138; 139) | ||
diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0121_match_arms_outer_attributes.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0121_match_arms_outer_attributes.rs new file mode 100644 index 000000000..676db42d1 --- /dev/null +++ b/crates/ra_syntax/tests/data/parser/inline/ok/0121_match_arms_outer_attributes.rs | |||
@@ -0,0 +1,12 @@ | |||
1 | fn foo() { | ||
2 | match () { | ||
3 | #[cfg(feature = "some")] | ||
4 | _ => (), | ||
5 | #[cfg(feature = "other")] | ||
6 | _ => (), | ||
7 | #[cfg(feature = "many")] | ||
8 | #[cfg(feature = "attributes")] | ||
9 | #[cfg(feature = "before")] | ||
10 | _ => (), | ||
11 | } | ||
12 | } | ||
diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0121_match_arms_outer_attributes.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0121_match_arms_outer_attributes.txt new file mode 100644 index 000000000..c888fb8f0 --- /dev/null +++ b/crates/ra_syntax/tests/data/parser/inline/ok/0121_match_arms_outer_attributes.txt | |||
@@ -0,0 +1,135 @@ | |||
1 | SOURCE_FILE@[0; 259) | ||
2 | FN_DEF@[0; 258) | ||
3 | FN_KW@[0; 2) | ||
4 | WHITESPACE@[2; 3) | ||
5 | NAME@[3; 6) | ||
6 | IDENT@[3; 6) "foo" | ||
7 | PARAM_LIST@[6; 8) | ||
8 | L_PAREN@[6; 7) | ||
9 | R_PAREN@[7; 8) | ||
10 | WHITESPACE@[8; 9) | ||
11 | BLOCK@[9; 258) | ||
12 | L_CURLY@[9; 10) | ||
13 | WHITESPACE@[10; 15) | ||
14 | MATCH_EXPR@[15; 256) | ||
15 | MATCH_KW@[15; 20) | ||
16 | WHITESPACE@[20; 21) | ||
17 | TUPLE_EXPR@[21; 23) | ||
18 | L_PAREN@[21; 22) | ||
19 | R_PAREN@[22; 23) | ||
20 | WHITESPACE@[23; 24) | ||
21 | MATCH_ARM_LIST@[24; 256) | ||
22 | L_CURLY@[24; 25) | ||
23 | WHITESPACE@[25; 34) | ||
24 | ATTR@[34; 58) | ||
25 | POUND@[34; 35) | ||
26 | TOKEN_TREE@[35; 58) | ||
27 | L_BRACK@[35; 36) | ||
28 | IDENT@[36; 39) "cfg" | ||
29 | TOKEN_TREE@[39; 57) | ||
30 | L_PAREN@[39; 40) | ||
31 | IDENT@[40; 47) "feature" | ||
32 | WHITESPACE@[47; 48) | ||
33 | EQ@[48; 49) | ||
34 | WHITESPACE@[49; 50) | ||
35 | STRING@[50; 56) | ||
36 | R_PAREN@[56; 57) | ||
37 | R_BRACK@[57; 58) | ||
38 | WHITESPACE@[58; 67) | ||
39 | MATCH_ARM@[67; 74) | ||
40 | PLACEHOLDER_PAT@[67; 68) | ||
41 | UNDERSCORE@[67; 68) | ||
42 | WHITESPACE@[68; 69) | ||
43 | FAT_ARROW@[69; 71) | ||
44 | WHITESPACE@[71; 72) | ||
45 | TUPLE_EXPR@[72; 74) | ||
46 | L_PAREN@[72; 73) | ||
47 | R_PAREN@[73; 74) | ||
48 | COMMA@[74; 75) | ||
49 | WHITESPACE@[75; 84) | ||
50 | ATTR@[84; 109) | ||
51 | POUND@[84; 85) | ||
52 | TOKEN_TREE@[85; 109) | ||
53 | L_BRACK@[85; 86) | ||
54 | IDENT@[86; 89) "cfg" | ||
55 | TOKEN_TREE@[89; 108) | ||
56 | L_PAREN@[89; 90) | ||
57 | IDENT@[90; 97) "feature" | ||
58 | WHITESPACE@[97; 98) | ||
59 | EQ@[98; 99) | ||
60 | WHITESPACE@[99; 100) | ||
61 | STRING@[100; 107) | ||
62 | R_PAREN@[107; 108) | ||
63 | R_BRACK@[108; 109) | ||
64 | WHITESPACE@[109; 118) | ||
65 | MATCH_ARM@[118; 125) | ||
66 | PLACEHOLDER_PAT@[118; 119) | ||
67 | UNDERSCORE@[118; 119) | ||
68 | WHITESPACE@[119; 120) | ||
69 | FAT_ARROW@[120; 122) | ||
70 | WHITESPACE@[122; 123) | ||
71 | TUPLE_EXPR@[123; 125) | ||
72 | L_PAREN@[123; 124) | ||
73 | R_PAREN@[124; 125) | ||
74 | COMMA@[125; 126) | ||
75 | WHITESPACE@[126; 135) | ||
76 | ATTR@[135; 159) | ||
77 | POUND@[135; 136) | ||
78 | TOKEN_TREE@[136; 159) | ||
79 | L_BRACK@[136; 137) | ||
80 | IDENT@[137; 140) "cfg" | ||
81 | TOKEN_TREE@[140; 158) | ||
82 | L_PAREN@[140; 141) | ||
83 | IDENT@[141; 148) "feature" | ||
84 | WHITESPACE@[148; 149) | ||
85 | EQ@[149; 150) | ||
86 | WHITESPACE@[150; 151) | ||
87 | STRING@[151; 157) | ||
88 | R_PAREN@[157; 158) | ||
89 | R_BRACK@[158; 159) | ||
90 | WHITESPACE@[159; 168) | ||
91 | ATTR@[168; 198) | ||
92 | POUND@[168; 169) | ||
93 | TOKEN_TREE@[169; 198) | ||
94 | L_BRACK@[169; 170) | ||
95 | IDENT@[170; 173) "cfg" | ||
96 | TOKEN_TREE@[173; 197) | ||
97 | L_PAREN@[173; 174) | ||
98 | IDENT@[174; 181) "feature" | ||
99 | WHITESPACE@[181; 182) | ||
100 | EQ@[182; 183) | ||
101 | WHITESPACE@[183; 184) | ||
102 | STRING@[184; 196) | ||
103 | R_PAREN@[196; 197) | ||
104 | R_BRACK@[197; 198) | ||
105 | WHITESPACE@[198; 207) | ||
106 | ATTR@[207; 233) | ||
107 | POUND@[207; 208) | ||
108 | TOKEN_TREE@[208; 233) | ||
109 | L_BRACK@[208; 209) | ||
110 | IDENT@[209; 212) "cfg" | ||
111 | TOKEN_TREE@[212; 232) | ||
112 | L_PAREN@[212; 213) | ||
113 | IDENT@[213; 220) "feature" | ||
114 | WHITESPACE@[220; 221) | ||
115 | EQ@[221; 222) | ||
116 | WHITESPACE@[222; 223) | ||
117 | STRING@[223; 231) | ||
118 | R_PAREN@[231; 232) | ||
119 | R_BRACK@[232; 233) | ||
120 | WHITESPACE@[233; 242) | ||
121 | MATCH_ARM@[242; 249) | ||
122 | PLACEHOLDER_PAT@[242; 243) | ||
123 | UNDERSCORE@[242; 243) | ||
124 | WHITESPACE@[243; 244) | ||
125 | FAT_ARROW@[244; 246) | ||
126 | WHITESPACE@[246; 247) | ||
127 | TUPLE_EXPR@[247; 249) | ||
128 | L_PAREN@[247; 248) | ||
129 | R_PAREN@[248; 249) | ||
130 | COMMA@[249; 250) | ||
131 | WHITESPACE@[250; 255) | ||
132 | R_CURLY@[255; 256) | ||
133 | WHITESPACE@[256; 257) | ||
134 | R_CURLY@[257; 258) | ||
135 | WHITESPACE@[258; 259) | ||