aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_syntax/tests/data/parser/inline/ok
diff options
context:
space:
mode:
authorVille Penttinen <[email protected]>2019-02-17 17:08:34 +0000
committerVille Penttinen <[email protected]>2019-02-17 17:26:57 +0000
commit1c97c1ac11459d45f7bfc57dc72428d2b294520c (patch)
tree70638cabf61f96a7511f974cc66dae40175bfb22 /crates/ra_syntax/tests/data/parser/inline/ok
parent982f72c022b45629e6adbaef22884359d3495ecf (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')
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0120_match_arms_inner_attribute.rs8
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0120_match_arms_inner_attribute.txt74
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0121_match_arms_outer_attributes.rs12
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0121_match_arms_outer_attributes.txt135
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 @@
1fn 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 @@
1SOURCE_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 @@
1fn 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 @@
1SOURCE_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)