diff options
author | Ville Penttinen <[email protected]> | 2019-02-17 17:08:34 +0000 |
---|---|---|
committer | Ville Penttinen <[email protected]> | 2019-02-17 17:26:57 +0000 |
commit | 1c97c1ac11459d45f7bfc57dc72428d2b294520c (patch) | |
tree | 70638cabf61f96a7511f974cc66dae40175bfb22 /crates/ra_syntax/tests/data/parser/inline/ok | |
parent | 982f72c022b45629e6adbaef22884359d3495ecf (diff) |
Enable parsing of attributes inside a match block
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.
Diffstat (limited to 'crates/ra_syntax/tests/data/parser/inline/ok')
4 files changed, 229 insertions, 0 deletions
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) | ||