aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_syntax/test_data/parser/ok
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_syntax/test_data/parser/ok')
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0006_inner_attributes.txt268
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0008_mod_item.txt10
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0011_outer_attribute.rs3
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0011_outer_attribute.txt53
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0017_attr_trailing_comma.txt20
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0035_weird_exprs.txt89
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0044_let_attrs.txt26
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0045_block_inner_attrs.txt90
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0046_extern_inner_attributes.txt18
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0051_parameter_attrs.txt150
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0053_outer_attribute_on_macro_rules.txt10
11 files changed, 423 insertions, 314 deletions
diff --git a/crates/ra_syntax/test_data/parser/ok/0006_inner_attributes.txt b/crates/ra_syntax/test_data/parser/ok/0006_inner_attributes.txt
index d8cabc9af..d72b72561 100644
--- a/crates/ra_syntax/test_data/parser/ok/0006_inner_attributes.txt
+++ b/crates/ra_syntax/test_data/parser/ok/0006_inner_attributes.txt
@@ -2,163 +2,183 @@ SOURCE_FILE@[0; 236)
2 ATTR@[0; 8) 2 ATTR@[0; 8)
3 POUND@[0; 1) "#" 3 POUND@[0; 1) "#"
4 EXCL@[1; 2) "!" 4 EXCL@[1; 2) "!"
5 TOKEN_TREE@[2; 8) 5 L_BRACK@[2; 3) "["
6 L_BRACK@[2; 3) "[" 6 PATH@[3; 7)
7 IDENT@[3; 7) "attr" 7 PATH_SEGMENT@[3; 7)
8 R_BRACK@[7; 8) "]" 8 NAME_REF@[3; 7)
9 IDENT@[3; 7) "attr"
10 R_BRACK@[7; 8) "]"
9 WHITESPACE@[8; 9) "\n" 11 WHITESPACE@[8; 9) "\n"
10 ATTR@[9; 23) 12 ATTR@[9; 23)
11 POUND@[9; 10) "#" 13 POUND@[9; 10) "#"
12 EXCL@[10; 11) "!" 14 EXCL@[10; 11) "!"
13 TOKEN_TREE@[11; 23) 15 L_BRACK@[11; 12) "["
14 L_BRACK@[11; 12) "[" 16 PATH@[12; 16)
15 IDENT@[12; 16) "attr" 17 PATH_SEGMENT@[12; 16)
16 TOKEN_TREE@[16; 22) 18 NAME_REF@[12; 16)
17 L_PAREN@[16; 17) "(" 19 IDENT@[12; 16) "attr"
18 TRUE_KW@[17; 21) "true" 20 TOKEN_TREE@[16; 22)
19 R_PAREN@[21; 22) ")" 21 L_PAREN@[16; 17) "("
20 R_BRACK@[22; 23) "]" 22 TRUE_KW@[17; 21) "true"
23 R_PAREN@[21; 22) ")"
24 R_BRACK@[22; 23) "]"
21 WHITESPACE@[23; 24) "\n" 25 WHITESPACE@[23; 24) "\n"
22 ATTR@[24; 39) 26 ATTR@[24; 39)
23 POUND@[24; 25) "#" 27 POUND@[24; 25) "#"
24 EXCL@[25; 26) "!" 28 EXCL@[25; 26) "!"
25 TOKEN_TREE@[26; 39) 29 L_BRACK@[26; 27) "["
26 L_BRACK@[26; 27) "[" 30 PATH@[27; 31)
27 IDENT@[27; 31) "attr" 31 PATH_SEGMENT@[27; 31)
28 TOKEN_TREE@[31; 38) 32 NAME_REF@[27; 31)
29 L_PAREN@[31; 32) "(" 33 IDENT@[27; 31) "attr"
30 IDENT@[32; 37) "ident" 34 TOKEN_TREE@[31; 38)
31 R_PAREN@[37; 38) ")" 35 L_PAREN@[31; 32) "("
32 R_BRACK@[38; 39) "]" 36 IDENT@[32; 37) "ident"
37 R_PAREN@[37; 38) ")"
38 R_BRACK@[38; 39) "]"
33 WHITESPACE@[39; 40) "\n" 39 WHITESPACE@[39; 40) "\n"
34 ATTR@[40; 116) 40 ATTR@[40; 116)
35 POUND@[40; 41) "#" 41 POUND@[40; 41) "#"
36 EXCL@[41; 42) "!" 42 EXCL@[41; 42) "!"
37 TOKEN_TREE@[42; 116) 43 L_BRACK@[42; 43) "["
38 L_BRACK@[42; 43) "[" 44 PATH@[43; 47)
39 IDENT@[43; 47) "attr" 45 PATH_SEGMENT@[43; 47)
40 TOKEN_TREE@[47; 115) 46 NAME_REF@[43; 47)
41 L_PAREN@[47; 48) "(" 47 IDENT@[43; 47) "attr"
42 IDENT@[48; 53) "ident" 48 TOKEN_TREE@[47; 115)
43 COMMA@[53; 54) "," 49 L_PAREN@[47; 48) "("
44 WHITESPACE@[54; 55) " " 50 IDENT@[48; 53) "ident"
45 INT_NUMBER@[55; 58) "100" 51 COMMA@[53; 54) ","
46 COMMA@[58; 59) "," 52 WHITESPACE@[54; 55) " "
47 WHITESPACE@[59; 60) " " 53 INT_NUMBER@[55; 58) "100"
48 TRUE_KW@[60; 64) "true" 54 COMMA@[58; 59) ","
49 COMMA@[64; 65) "," 55 WHITESPACE@[59; 60) " "
50 WHITESPACE@[65; 66) " " 56 TRUE_KW@[60; 64) "true"
51 STRING@[66; 72) "\"true\"" 57 COMMA@[64; 65) ","
52 COMMA@[72; 73) "," 58 WHITESPACE@[65; 66) " "
53 WHITESPACE@[73; 74) " " 59 STRING@[66; 72) "\"true\""
54 IDENT@[74; 79) "ident" 60 COMMA@[72; 73) ","
55 WHITESPACE@[79; 80) " " 61 WHITESPACE@[73; 74) " "
56 EQ@[80; 81) "=" 62 IDENT@[74; 79) "ident"
57 WHITESPACE@[81; 82) " " 63 WHITESPACE@[79; 80) " "
58 INT_NUMBER@[82; 85) "100" 64 EQ@[80; 81) "="
59 COMMA@[85; 86) "," 65 WHITESPACE@[81; 82) " "
60 WHITESPACE@[86; 87) " " 66 INT_NUMBER@[82; 85) "100"
61 IDENT@[87; 92) "ident" 67 COMMA@[85; 86) ","
62 WHITESPACE@[92; 93) " " 68 WHITESPACE@[86; 87) " "
63 EQ@[93; 94) "=" 69 IDENT@[87; 92) "ident"
64 WHITESPACE@[94; 95) " " 70 WHITESPACE@[92; 93) " "
65 STRING@[95; 102) "\"hello\"" 71 EQ@[93; 94) "="
66 COMMA@[102; 103) "," 72 WHITESPACE@[94; 95) " "
67 WHITESPACE@[103; 104) " " 73 STRING@[95; 102) "\"hello\""
68 IDENT@[104; 109) "ident" 74 COMMA@[102; 103) ","
69 TOKEN_TREE@[109; 114) 75 WHITESPACE@[103; 104) " "
70 L_PAREN@[109; 110) "(" 76 IDENT@[104; 109) "ident"
71 INT_NUMBER@[110; 113) "100" 77 TOKEN_TREE@[109; 114)
72 R_PAREN@[113; 114) ")" 78 L_PAREN@[109; 110) "("
73 R_PAREN@[114; 115) ")" 79 INT_NUMBER@[110; 113) "100"
74 R_BRACK@[115; 116) "]" 80 R_PAREN@[113; 114) ")"
81 R_PAREN@[114; 115) ")"
82 R_BRACK@[115; 116) "]"
75 WHITESPACE@[116; 117) "\n" 83 WHITESPACE@[116; 117) "\n"
76 ATTR@[117; 130) 84 ATTR@[117; 130)
77 POUND@[117; 118) "#" 85 POUND@[117; 118) "#"
78 EXCL@[118; 119) "!" 86 EXCL@[118; 119) "!"
79 TOKEN_TREE@[119; 130) 87 L_BRACK@[119; 120) "["
80 L_BRACK@[119; 120) "[" 88 PATH@[120; 124)
81 IDENT@[120; 124) "attr" 89 PATH_SEGMENT@[120; 124)
82 TOKEN_TREE@[124; 129) 90 NAME_REF@[120; 124)
83 L_PAREN@[124; 125) "(" 91 IDENT@[120; 124) "attr"
84 INT_NUMBER@[125; 128) "100" 92 TOKEN_TREE@[124; 129)
85 R_PAREN@[128; 129) ")" 93 L_PAREN@[124; 125) "("
86 R_BRACK@[129; 130) "]" 94 INT_NUMBER@[125; 128) "100"
95 R_PAREN@[128; 129) ")"
96 R_BRACK@[129; 130) "]"
87 WHITESPACE@[130; 131) "\n" 97 WHITESPACE@[130; 131) "\n"
88 ATTR@[131; 155) 98 ATTR@[131; 155)
89 POUND@[131; 132) "#" 99 POUND@[131; 132) "#"
90 EXCL@[132; 133) "!" 100 EXCL@[132; 133) "!"
91 TOKEN_TREE@[133; 155) 101 L_BRACK@[133; 134) "["
92 L_BRACK@[133; 134) "[" 102 PATH@[134; 138)
93 IDENT@[134; 138) "attr" 103 PATH_SEGMENT@[134; 138)
94 TOKEN_TREE@[138; 154) 104 NAME_REF@[134; 138)
95 L_PAREN@[138; 139) "(" 105 IDENT@[134; 138) "attr"
96 IDENT@[139; 146) "enabled" 106 TOKEN_TREE@[138; 154)
97 WHITESPACE@[146; 147) " " 107 L_PAREN@[138; 139) "("
98 EQ@[147; 148) "=" 108 IDENT@[139; 146) "enabled"
99 WHITESPACE@[148; 149) " " 109 WHITESPACE@[146; 147) " "
100 TRUE_KW@[149; 153) "true" 110 EQ@[147; 148) "="
101 R_PAREN@[153; 154) ")" 111 WHITESPACE@[148; 149) " "
102 R_BRACK@[154; 155) "]" 112 TRUE_KW@[149; 153) "true"
113 R_PAREN@[153; 154) ")"
114 R_BRACK@[154; 155) "]"
103 WHITESPACE@[155; 156) "\n" 115 WHITESPACE@[155; 156) "\n"
104 ATTR@[156; 173) 116 ATTR@[156; 173)
105 POUND@[156; 157) "#" 117 POUND@[156; 157) "#"
106 EXCL@[157; 158) "!" 118 EXCL@[157; 158) "!"
107 TOKEN_TREE@[158; 173) 119 L_BRACK@[158; 159) "["
108 L_BRACK@[158; 159) "[" 120 PATH@[159; 166)
109 IDENT@[159; 166) "enabled" 121 PATH_SEGMENT@[159; 166)
110 TOKEN_TREE@[166; 172) 122 NAME_REF@[159; 166)
111 L_PAREN@[166; 167) "(" 123 IDENT@[159; 166) "enabled"
112 TRUE_KW@[167; 171) "true" 124 TOKEN_TREE@[166; 172)
113 R_PAREN@[171; 172) ")" 125 L_PAREN@[166; 167) "("
114 R_BRACK@[172; 173) "]" 126 TRUE_KW@[167; 171) "true"
127 R_PAREN@[171; 172) ")"
128 R_BRACK@[172; 173) "]"
115 WHITESPACE@[173; 174) "\n" 129 WHITESPACE@[173; 174) "\n"
116 ATTR@[174; 191) 130 ATTR@[174; 191)
117 POUND@[174; 175) "#" 131 POUND@[174; 175) "#"
118 EXCL@[175; 176) "!" 132 EXCL@[175; 176) "!"
119 TOKEN_TREE@[176; 191) 133 L_BRACK@[176; 177) "["
120 L_BRACK@[176; 177) "[" 134 PATH@[177; 181)
121 IDENT@[177; 181) "attr" 135 PATH_SEGMENT@[177; 181)
122 TOKEN_TREE@[181; 190) 136 NAME_REF@[177; 181)
123 L_PAREN@[181; 182) "(" 137 IDENT@[177; 181) "attr"
124 STRING@[182; 189) "\"hello\"" 138 TOKEN_TREE@[181; 190)
125 R_PAREN@[189; 190) ")" 139 L_PAREN@[181; 182) "("
126 R_BRACK@[190; 191) "]" 140 STRING@[182; 189) "\"hello\""
141 R_PAREN@[189; 190) ")"
142 R_BRACK@[190; 191) "]"
127 WHITESPACE@[191; 192) "\n" 143 WHITESPACE@[191; 192) "\n"
128 ATTR@[192; 214) 144 ATTR@[192; 214)
129 POUND@[192; 193) "#" 145 POUND@[192; 193) "#"
130 EXCL@[193; 194) "!" 146 EXCL@[193; 194) "!"
131 TOKEN_TREE@[194; 214) 147 L_BRACK@[194; 195) "["
132 L_BRACK@[194; 195) "[" 148 PATH@[195; 199)
133 IDENT@[195; 199) "repr" 149 PATH_SEGMENT@[195; 199)
134 TOKEN_TREE@[199; 213) 150 NAME_REF@[195; 199)
135 L_PAREN@[199; 200) "(" 151 IDENT@[195; 199) "repr"
136 IDENT@[200; 201) "C" 152 TOKEN_TREE@[199; 213)
137 COMMA@[201; 202) "," 153 L_PAREN@[199; 200) "("
138 WHITESPACE@[202; 203) " " 154 IDENT@[200; 201) "C"
139 IDENT@[203; 208) "align" 155 COMMA@[201; 202) ","
140 WHITESPACE@[208; 209) " " 156 WHITESPACE@[202; 203) " "
141 EQ@[209; 210) "=" 157 IDENT@[203; 208) "align"
142 WHITESPACE@[210; 211) " " 158 WHITESPACE@[208; 209) " "
143 INT_NUMBER@[211; 212) "4" 159 EQ@[209; 210) "="
144 R_PAREN@[212; 213) ")" 160 WHITESPACE@[210; 211) " "
145 R_BRACK@[213; 214) "]" 161 INT_NUMBER@[211; 212) "4"
162 R_PAREN@[212; 213) ")"
163 R_BRACK@[213; 214) "]"
146 WHITESPACE@[214; 215) "\n" 164 WHITESPACE@[214; 215) "\n"
147 ATTR@[215; 236) 165 ATTR@[215; 236)
148 POUND@[215; 216) "#" 166 POUND@[215; 216) "#"
149 EXCL@[216; 217) "!" 167 EXCL@[216; 217) "!"
150 TOKEN_TREE@[217; 236) 168 L_BRACK@[217; 218) "["
151 L_BRACK@[217; 218) "[" 169 PATH@[218; 222)
152 IDENT@[218; 222) "repr" 170 PATH_SEGMENT@[218; 222)
153 TOKEN_TREE@[222; 235) 171 NAME_REF@[218; 222)
154 L_PAREN@[222; 223) "(" 172 IDENT@[218; 222) "repr"
155 IDENT@[223; 224) "C" 173 TOKEN_TREE@[222; 235)
156 COMMA@[224; 225) "," 174 L_PAREN@[222; 223) "("
157 WHITESPACE@[225; 226) " " 175 IDENT@[223; 224) "C"
158 IDENT@[226; 231) "align" 176 COMMA@[224; 225) ","
159 TOKEN_TREE@[231; 234) 177 WHITESPACE@[225; 226) " "
160 L_PAREN@[231; 232) "(" 178 IDENT@[226; 231) "align"
161 INT_NUMBER@[232; 233) "4" 179 TOKEN_TREE@[231; 234)
162 R_PAREN@[233; 234) ")" 180 L_PAREN@[231; 232) "("
163 R_PAREN@[234; 235) ")" 181 INT_NUMBER@[232; 233) "4"
164 R_BRACK@[235; 236) "]" 182 R_PAREN@[233; 234) ")"
183 R_PAREN@[234; 235) ")"
184 R_BRACK@[235; 236) "]"
diff --git a/crates/ra_syntax/test_data/parser/ok/0008_mod_item.txt b/crates/ra_syntax/test_data/parser/ok/0008_mod_item.txt
index 35465632d..061019a73 100644
--- a/crates/ra_syntax/test_data/parser/ok/0008_mod_item.txt
+++ b/crates/ra_syntax/test_data/parser/ok/0008_mod_item.txt
@@ -65,10 +65,12 @@ SOURCE_FILE@[0; 118)
65 ATTR@[79; 87) 65 ATTR@[79; 87)
66 POUND@[79; 80) "#" 66 POUND@[79; 80) "#"
67 EXCL@[80; 81) "!" 67 EXCL@[80; 81) "!"
68 TOKEN_TREE@[81; 87) 68 L_BRACK@[81; 82) "["
69 L_BRACK@[81; 82) "[" 69 PATH@[82; 86)
70 IDENT@[82; 86) "attr" 70 PATH_SEGMENT@[82; 86)
71 R_BRACK@[86; 87) "]" 71 NAME_REF@[82; 86)
72 IDENT@[82; 86) "attr"
73 R_BRACK@[86; 87) "]"
72 WHITESPACE@[87; 92) "\n " 74 WHITESPACE@[87; 92) "\n "
73 MODULE@[92; 98) 75 MODULE@[92; 98)
74 MOD_KW@[92; 95) "mod" 76 MOD_KW@[92; 95) "mod"
diff --git a/crates/ra_syntax/test_data/parser/ok/0011_outer_attribute.rs b/crates/ra_syntax/test_data/parser/ok/0011_outer_attribute.rs
index 8b80c0d90..3d2e01d5c 100644
--- a/crates/ra_syntax/test_data/parser/ok/0011_outer_attribute.rs
+++ b/crates/ra_syntax/test_data/parser/ok/0011_outer_attribute.rs
@@ -1,3 +1,6 @@
1#[cfg(test)] 1#[cfg(test)]
2#[ignore] 2#[ignore]
3fn foo() {} 3fn foo() {}
4
5#[path = "a.rs"]
6mod b;
diff --git a/crates/ra_syntax/test_data/parser/ok/0011_outer_attribute.txt b/crates/ra_syntax/test_data/parser/ok/0011_outer_attribute.txt
index a845c5c24..f7aa8afe4 100644
--- a/crates/ra_syntax/test_data/parser/ok/0011_outer_attribute.txt
+++ b/crates/ra_syntax/test_data/parser/ok/0011_outer_attribute.txt
@@ -1,22 +1,26 @@
1SOURCE_FILE@[0; 35) 1SOURCE_FILE@[0; 60)
2 FN_DEF@[0; 34) 2 FN_DEF@[0; 34)
3 ATTR@[0; 12) 3 ATTR@[0; 12)
4 POUND@[0; 1) "#" 4 POUND@[0; 1) "#"
5 TOKEN_TREE@[1; 12) 5 L_BRACK@[1; 2) "["
6 L_BRACK@[1; 2) "[" 6 PATH@[2; 5)
7 IDENT@[2; 5) "cfg" 7 PATH_SEGMENT@[2; 5)
8 TOKEN_TREE@[5; 11) 8 NAME_REF@[2; 5)
9 L_PAREN@[5; 6) "(" 9 IDENT@[2; 5) "cfg"
10 IDENT@[6; 10) "test" 10 TOKEN_TREE@[5; 11)
11 R_PAREN@[10; 11) ")" 11 L_PAREN@[5; 6) "("
12 R_BRACK@[11; 12) "]" 12 IDENT@[6; 10) "test"
13 R_PAREN@[10; 11) ")"
14 R_BRACK@[11; 12) "]"
13 WHITESPACE@[12; 13) "\n" 15 WHITESPACE@[12; 13) "\n"
14 ATTR@[13; 22) 16 ATTR@[13; 22)
15 POUND@[13; 14) "#" 17 POUND@[13; 14) "#"
16 TOKEN_TREE@[14; 22) 18 L_BRACK@[14; 15) "["
17 L_BRACK@[14; 15) "[" 19 PATH@[15; 21)
18 IDENT@[15; 21) "ignore" 20 PATH_SEGMENT@[15; 21)
19 R_BRACK@[21; 22) "]" 21 NAME_REF@[15; 21)
22 IDENT@[15; 21) "ignore"
23 R_BRACK@[21; 22) "]"
20 WHITESPACE@[22; 23) "\n" 24 WHITESPACE@[22; 23) "\n"
21 FN_KW@[23; 25) "fn" 25 FN_KW@[23; 25) "fn"
22 WHITESPACE@[25; 26) " " 26 WHITESPACE@[25; 26) " "
@@ -30,4 +34,25 @@ SOURCE_FILE@[0; 35)
30 BLOCK@[32; 34) 34 BLOCK@[32; 34)
31 L_CURLY@[32; 33) "{" 35 L_CURLY@[32; 33) "{"
32 R_CURLY@[33; 34) "}" 36 R_CURLY@[33; 34) "}"
33 WHITESPACE@[34; 35) "\n" 37 WHITESPACE@[34; 36) "\n\n"
38 MODULE@[36; 59)
39 ATTR@[36; 52)
40 POUND@[36; 37) "#"
41 L_BRACK@[37; 38) "["
42 PATH@[38; 42)
43 PATH_SEGMENT@[38; 42)
44 NAME_REF@[38; 42)
45 IDENT@[38; 42) "path"
46 WHITESPACE@[42; 43) " "
47 EQ@[43; 44) "="
48 WHITESPACE@[44; 45) " "
49 LITERAL@[45; 51)
50 STRING@[45; 51) "\"a.rs\""
51 R_BRACK@[51; 52) "]"
52 WHITESPACE@[52; 53) "\n"
53 MOD_KW@[53; 56) "mod"
54 WHITESPACE@[56; 57) " "
55 NAME@[57; 58)
56 IDENT@[57; 58) "b"
57 SEMI@[58; 59) ";"
58 WHITESPACE@[59; 60) "\n"
diff --git a/crates/ra_syntax/test_data/parser/ok/0017_attr_trailing_comma.txt b/crates/ra_syntax/test_data/parser/ok/0017_attr_trailing_comma.txt
index a1084b221..1d65b0d6e 100644
--- a/crates/ra_syntax/test_data/parser/ok/0017_attr_trailing_comma.txt
+++ b/crates/ra_syntax/test_data/parser/ok/0017_attr_trailing_comma.txt
@@ -2,15 +2,17 @@ SOURCE_FILE@[0; 23)
2 FN_DEF@[0; 22) 2 FN_DEF@[0; 22)
3 ATTR@[0; 10) 3 ATTR@[0; 10)
4 POUND@[0; 1) "#" 4 POUND@[0; 1) "#"
5 TOKEN_TREE@[1; 10) 5 L_BRACK@[1; 2) "["
6 L_BRACK@[1; 2) "[" 6 PATH@[2; 5)
7 IDENT@[2; 5) "foo" 7 PATH_SEGMENT@[2; 5)
8 TOKEN_TREE@[5; 9) 8 NAME_REF@[2; 5)
9 L_PAREN@[5; 6) "(" 9 IDENT@[2; 5) "foo"
10 IDENT@[6; 7) "a" 10 TOKEN_TREE@[5; 9)
11 COMMA@[7; 8) "," 11 L_PAREN@[5; 6) "("
12 R_PAREN@[8; 9) ")" 12 IDENT@[6; 7) "a"
13 R_BRACK@[9; 10) "]" 13 COMMA@[7; 8) ","
14 R_PAREN@[8; 9) ")"
15 R_BRACK@[9; 10) "]"
14 WHITESPACE@[10; 11) "\n" 16 WHITESPACE@[10; 11) "\n"
15 FN_KW@[11; 13) "fn" 17 FN_KW@[11; 13) "fn"
16 WHITESPACE@[13; 14) " " 18 WHITESPACE@[13; 14) " "
diff --git a/crates/ra_syntax/test_data/parser/ok/0035_weird_exprs.txt b/crates/ra_syntax/test_data/parser/ok/0035_weird_exprs.txt
index 3326ab2ae..3260cc589 100644
--- a/crates/ra_syntax/test_data/parser/ok/0035_weird_exprs.txt
+++ b/crates/ra_syntax/test_data/parser/ok/0035_weird_exprs.txt
@@ -10,62 +10,73 @@ SOURCE_FILE@[0; 3813)
10 ATTR@[271; 302) 10 ATTR@[271; 302)
11 POUND@[271; 272) "#" 11 POUND@[271; 272) "#"
12 EXCL@[272; 273) "!" 12 EXCL@[272; 273) "!"
13 TOKEN_TREE@[273; 302) 13 L_BRACK@[273; 274) "["
14 L_BRACK@[273; 274) "[" 14 PATH@[274; 279)
15 IDENT@[274; 279) "allow" 15 PATH_SEGMENT@[274; 279)
16 TOKEN_TREE@[279; 301) 16 NAME_REF@[274; 279)
17 L_PAREN@[279; 280) "(" 17 IDENT@[274; 279) "allow"
18 IDENT@[280; 300) "non_camel_case_types" 18 TOKEN_TREE@[279; 301)
19 R_PAREN@[300; 301) ")" 19 L_PAREN@[279; 280) "("
20 R_BRACK@[301; 302) "]" 20 IDENT@[280; 300) "non_camel_case_types"
21 R_PAREN@[300; 301) ")"
22 R_BRACK@[301; 302) "]"
21 WHITESPACE@[302; 303) "\n" 23 WHITESPACE@[302; 303) "\n"
22 ATTR@[303; 323) 24 ATTR@[303; 323)
23 POUND@[303; 304) "#" 25 POUND@[303; 304) "#"
24 EXCL@[304; 305) "!" 26 EXCL@[304; 305) "!"
25 TOKEN_TREE@[305; 323) 27 L_BRACK@[305; 306) "["
26 L_BRACK@[305; 306) "[" 28 PATH@[306; 311)
27 IDENT@[306; 311) "allow" 29 PATH_SEGMENT@[306; 311)
28 TOKEN_TREE@[311; 322) 30 NAME_REF@[306; 311)
29 L_PAREN@[311; 312) "(" 31 IDENT@[306; 311) "allow"
30 IDENT@[312; 321) "dead_code" 32 TOKEN_TREE@[311; 322)
31 R_PAREN@[321; 322) ")" 33 L_PAREN@[311; 312) "("
32 R_BRACK@[322; 323) "]" 34 IDENT@[312; 321) "dead_code"
35 R_PAREN@[321; 322) ")"
36 R_BRACK@[322; 323) "]"
33 WHITESPACE@[323; 324) "\n" 37 WHITESPACE@[323; 324) "\n"
34 ATTR@[324; 351) 38 ATTR@[324; 351)
35 POUND@[324; 325) "#" 39 POUND@[324; 325) "#"
36 EXCL@[325; 326) "!" 40 EXCL@[325; 326) "!"
37 TOKEN_TREE@[326; 351) 41 L_BRACK@[326; 327) "["
38 L_BRACK@[326; 327) "[" 42 PATH@[327; 332)
39 IDENT@[327; 332) "allow" 43 PATH_SEGMENT@[327; 332)
40 TOKEN_TREE@[332; 350) 44 NAME_REF@[327; 332)
41 L_PAREN@[332; 333) "(" 45 IDENT@[327; 332) "allow"
42 IDENT@[333; 349) "unreachable_code" 46 TOKEN_TREE@[332; 350)
43 R_PAREN@[349; 350) ")" 47 L_PAREN@[332; 333) "("
44 R_BRACK@[350; 351) "]" 48 IDENT@[333; 349) "unreachable_code"
49 R_PAREN@[349; 350) ")"
50 R_BRACK@[350; 351) "]"
45 WHITESPACE@[351; 352) "\n" 51 WHITESPACE@[351; 352) "\n"
46 ATTR@[352; 376) 52 ATTR@[352; 376)
47 POUND@[352; 353) "#" 53 POUND@[352; 353) "#"
48 EXCL@[353; 354) "!" 54 EXCL@[353; 354) "!"
49 TOKEN_TREE@[354; 376) 55 L_BRACK@[354; 355) "["
50 L_BRACK@[354; 355) "[" 56 PATH@[355; 360)
51 IDENT@[355; 360) "allow" 57 PATH_SEGMENT@[355; 360)
52 TOKEN_TREE@[360; 375) 58 NAME_REF@[355; 360)
53 L_PAREN@[360; 361) "(" 59 IDENT@[355; 360) "allow"
54 IDENT@[361; 374) "unused_parens" 60 TOKEN_TREE@[360; 375)
55 R_PAREN@[374; 375) ")" 61 L_PAREN@[360; 361) "("
56 R_BRACK@[375; 376) "]" 62 IDENT@[361; 374) "unused_parens"
63 R_PAREN@[374; 375) ")"
64 R_BRACK@[375; 376) "]"
57 WHITESPACE@[376; 378) "\n\n" 65 WHITESPACE@[376; 378) "\n\n"
58 ATTR@[378; 405) 66 ATTR@[378; 405)
59 POUND@[378; 379) "#" 67 POUND@[378; 379) "#"
60 EXCL@[379; 380) "!" 68 EXCL@[379; 380) "!"
61 TOKEN_TREE@[380; 405) 69 L_BRACK@[380; 381) "["
62 L_BRACK@[380; 381) "[" 70 PATH@[381; 396)
63 IDENT@[381; 396) "recursion_limit" 71 PATH_SEGMENT@[381; 396)
64 WHITESPACE@[396; 397) " " 72 NAME_REF@[381; 396)
65 EQ@[397; 398) "=" 73 IDENT@[381; 396) "recursion_limit"
66 WHITESPACE@[398; 399) " " 74 WHITESPACE@[396; 397) " "
75 EQ@[397; 398) "="
76 WHITESPACE@[398; 399) " "
77 LITERAL@[399; 404)
67 STRING@[399; 404) "\"128\"" 78 STRING@[399; 404) "\"128\""
68 R_BRACK@[404; 405) "]" 79 R_BRACK@[404; 405) "]"
69 WHITESPACE@[405; 407) "\n\n" 80 WHITESPACE@[405; 407) "\n\n"
70 USE_ITEM@[407; 427) 81 USE_ITEM@[407; 427)
71 USE_KW@[407; 410) "use" 82 USE_KW@[407; 410) "use"
diff --git a/crates/ra_syntax/test_data/parser/ok/0044_let_attrs.txt b/crates/ra_syntax/test_data/parser/ok/0044_let_attrs.txt
index 7dabe535f..bfc793dc1 100644
--- a/crates/ra_syntax/test_data/parser/ok/0044_let_attrs.txt
+++ b/crates/ra_syntax/test_data/parser/ok/0044_let_attrs.txt
@@ -17,18 +17,20 @@ SOURCE_FILE@[0; 166)
17 LET_STMT@[77; 163) 17 LET_STMT@[77; 163)
18 ATTR@[77; 106) 18 ATTR@[77; 106)
19 POUND@[77; 78) "#" 19 POUND@[77; 78) "#"
20 TOKEN_TREE@[78; 106) 20 L_BRACK@[78; 79) "["
21 L_BRACK@[78; 79) "[" 21 PATH@[79; 82)
22 IDENT@[79; 82) "cfg" 22 PATH_SEGMENT@[79; 82)
23 TOKEN_TREE@[82; 105) 23 NAME_REF@[79; 82)
24 L_PAREN@[82; 83) "(" 24 IDENT@[79; 82) "cfg"
25 IDENT@[83; 90) "feature" 25 TOKEN_TREE@[82; 105)
26 WHITESPACE@[90; 91) " " 26 L_PAREN@[82; 83) "("
27 EQ@[91; 92) "=" 27 IDENT@[83; 90) "feature"
28 WHITESPACE@[92; 93) " " 28 WHITESPACE@[90; 91) " "
29 STRING@[93; 104) "\"backtrace\"" 29 EQ@[91; 92) "="
30 R_PAREN@[104; 105) ")" 30 WHITESPACE@[92; 93) " "
31 R_BRACK@[105; 106) "]" 31 STRING@[93; 104) "\"backtrace\""
32 R_PAREN@[104; 105) ")"
33 R_BRACK@[105; 106) "]"
32 WHITESPACE@[106; 111) "\n " 34 WHITESPACE@[106; 111) "\n "
33 LET_KW@[111; 114) "let" 35 LET_KW@[111; 114) "let"
34 WHITESPACE@[114; 115) " " 36 WHITESPACE@[114; 115) " "
diff --git a/crates/ra_syntax/test_data/parser/ok/0045_block_inner_attrs.txt b/crates/ra_syntax/test_data/parser/ok/0045_block_inner_attrs.txt
index e8be8203b..3d9aab500 100644
--- a/crates/ra_syntax/test_data/parser/ok/0045_block_inner_attrs.txt
+++ b/crates/ra_syntax/test_data/parser/ok/0045_block_inner_attrs.txt
@@ -15,14 +15,16 @@ SOURCE_FILE@[0; 686)
15 ATTR@[17; 57) 15 ATTR@[17; 57)
16 POUND@[17; 18) "#" 16 POUND@[17; 18) "#"
17 EXCL@[18; 19) "!" 17 EXCL@[18; 19) "!"
18 TOKEN_TREE@[19; 57) 18 L_BRACK@[19; 20) "["
19 L_BRACK@[19; 20) "[" 19 PATH@[20; 23)
20 IDENT@[20; 23) "doc" 20 PATH_SEGMENT@[20; 23)
21 TOKEN_TREE@[23; 56) 21 NAME_REF@[20; 23)
22 L_PAREN@[23; 24) "(" 22 IDENT@[20; 23) "doc"
23 STRING@[24; 55) "\"Inner attributes all ..." 23 TOKEN_TREE@[23; 56)
24 R_PAREN@[55; 56) ")" 24 L_PAREN@[23; 24) "("
25 R_BRACK@[56; 57) "]" 25 STRING@[24; 55) "\"Inner attributes all ..."
26 R_PAREN@[55; 56) ")"
27 R_BRACK@[56; 57) "]"
26 WHITESPACE@[57; 62) "\n " 28 WHITESPACE@[57; 62) "\n "
27 COMMENT@[62; 97) "//! As are ModuleDoc ..." 29 COMMENT@[62; 97) "//! As are ModuleDoc ..."
28 WHITESPACE@[97; 102) "\n " 30 WHITESPACE@[97; 102) "\n "
@@ -34,26 +36,30 @@ SOURCE_FILE@[0; 686)
34 ATTR@[112; 180) 36 ATTR@[112; 180)
35 POUND@[112; 113) "#" 37 POUND@[112; 113) "#"
36 EXCL@[113; 114) "!" 38 EXCL@[113; 114) "!"
37 TOKEN_TREE@[114; 180) 39 L_BRACK@[114; 115) "["
38 L_BRACK@[114; 115) "[" 40 PATH@[115; 118)
39 IDENT@[115; 118) "doc" 41 PATH_SEGMENT@[115; 118)
40 TOKEN_TREE@[118; 179) 42 NAME_REF@[115; 118)
41 L_PAREN@[118; 119) "(" 43 IDENT@[115; 118) "doc"
42 STRING@[119; 178) "\"Inner attributes are ..." 44 TOKEN_TREE@[118; 179)
43 R_PAREN@[178; 179) ")" 45 L_PAREN@[118; 119) "("
44 R_BRACK@[179; 180) "]" 46 STRING@[119; 178) "\"Inner attributes are ..."
47 R_PAREN@[178; 179) ")"
48 R_BRACK@[179; 180) "]"
45 WHITESPACE@[180; 189) "\n " 49 WHITESPACE@[180; 189) "\n "
46 ATTR@[189; 244) 50 ATTR@[189; 244)
47 POUND@[189; 190) "#" 51 POUND@[189; 190) "#"
48 EXCL@[190; 191) "!" 52 EXCL@[190; 191) "!"
49 TOKEN_TREE@[191; 244) 53 L_BRACK@[191; 192) "["
50 L_BRACK@[191; 192) "[" 54 PATH@[192; 195)
51 IDENT@[192; 195) "doc" 55 PATH_SEGMENT@[192; 195)
52 TOKEN_TREE@[195; 243) 56 NAME_REF@[192; 195)
53 L_PAREN@[195; 196) "(" 57 IDENT@[192; 195) "doc"
54 STRING@[196; 242) "\"Being validated is n ..." 58 TOKEN_TREE@[195; 243)
55 R_PAREN@[242; 243) ")" 59 L_PAREN@[195; 196) "("
56 R_BRACK@[243; 244) "]" 60 STRING@[196; 242) "\"Being validated is n ..."
61 R_PAREN@[242; 243) ")"
62 R_BRACK@[243; 244) "]"
57 WHITESPACE@[244; 253) "\n " 63 WHITESPACE@[244; 253) "\n "
58 COMMENT@[253; 288) "//! As are ModuleDoc ..." 64 COMMENT@[253; 288) "//! As are ModuleDoc ..."
59 WHITESPACE@[288; 293) "\n " 65 WHITESPACE@[288; 293) "\n "
@@ -67,14 +73,16 @@ SOURCE_FILE@[0; 686)
67 ATTR@[310; 409) 73 ATTR@[310; 409)
68 POUND@[310; 311) "#" 74 POUND@[310; 311) "#"
69 EXCL@[311; 312) "!" 75 EXCL@[311; 312) "!"
70 TOKEN_TREE@[312; 409) 76 L_BRACK@[312; 313) "["
71 L_BRACK@[312; 313) "[" 77 PATH@[313; 316)
72 IDENT@[313; 316) "doc" 78 PATH_SEGMENT@[313; 316)
73 TOKEN_TREE@[316; 408) 79 NAME_REF@[313; 316)
74 L_PAREN@[316; 317) "(" 80 IDENT@[313; 316) "doc"
75 STRING@[317; 407) "\"Inner attributes are ..." 81 TOKEN_TREE@[316; 408)
76 R_PAREN@[407; 408) ")" 82 L_PAREN@[316; 317) "("
77 R_BRACK@[408; 409) "]" 83 STRING@[317; 407) "\"Inner attributes are ..."
84 R_PAREN@[407; 408) ")"
85 R_BRACK@[408; 409) "]"
78 WHITESPACE@[409; 418) "\n " 86 WHITESPACE@[409; 418) "\n "
79 COMMENT@[418; 453) "//! As are ModuleDoc ..." 87 COMMENT@[418; 453) "//! As are ModuleDoc ..."
80 WHITESPACE@[453; 458) "\n " 88 WHITESPACE@[453; 458) "\n "
@@ -154,14 +162,16 @@ SOURCE_FILE@[0; 686)
154 ATTR@[612; 639) 162 ATTR@[612; 639)
155 POUND@[612; 613) "#" 163 POUND@[612; 613) "#"
156 EXCL@[613; 614) "!" 164 EXCL@[613; 614) "!"
157 TOKEN_TREE@[614; 639) 165 L_BRACK@[614; 615) "["
158 L_BRACK@[614; 615) "[" 166 PATH@[615; 620)
159 IDENT@[615; 620) "allow" 167 PATH_SEGMENT@[615; 620)
160 TOKEN_TREE@[620; 638) 168 NAME_REF@[615; 620)
161 L_PAREN@[620; 621) "(" 169 IDENT@[615; 620) "allow"
162 IDENT@[621; 637) "unused_variables" 170 TOKEN_TREE@[620; 638)
163 R_PAREN@[637; 638) ")" 171 L_PAREN@[620; 621) "("
164 R_BRACK@[638; 639) "]" 172 IDENT@[621; 637) "unused_variables"
173 R_PAREN@[637; 638) ")"
174 R_BRACK@[638; 639) "]"
165 WHITESPACE@[639; 640) " " 175 WHITESPACE@[639; 640) " "
166 COMMENT@[640; 677) "// this is `inner_at ..." 176 COMMENT@[640; 677) "// this is `inner_at ..."
167 WHITESPACE@[677; 682) "\n " 177 WHITESPACE@[677; 682) "\n "
diff --git a/crates/ra_syntax/test_data/parser/ok/0046_extern_inner_attributes.txt b/crates/ra_syntax/test_data/parser/ok/0046_extern_inner_attributes.txt
index 4487a6e2e..8f192124b 100644
--- a/crates/ra_syntax/test_data/parser/ok/0046_extern_inner_attributes.txt
+++ b/crates/ra_syntax/test_data/parser/ok/0046_extern_inner_attributes.txt
@@ -13,14 +13,16 @@ SOURCE_FILE@[0; 87)
13 ATTR@[47; 84) 13 ATTR@[47; 84)
14 POUND@[47; 48) "#" 14 POUND@[47; 48) "#"
15 EXCL@[48; 49) "!" 15 EXCL@[48; 49) "!"
16 TOKEN_TREE@[49; 84) 16 L_BRACK@[49; 50) "["
17 L_BRACK@[49; 50) "[" 17 PATH@[50; 53)
18 IDENT@[50; 53) "doc" 18 PATH_SEGMENT@[50; 53)
19 TOKEN_TREE@[53; 83) 19 NAME_REF@[50; 53)
20 L_PAREN@[53; 54) "(" 20 IDENT@[50; 53) "doc"
21 STRING@[54; 82) "\"This is also a doc c ..." 21 TOKEN_TREE@[53; 83)
22 R_PAREN@[82; 83) ")" 22 L_PAREN@[53; 54) "("
23 R_BRACK@[83; 84) "]" 23 STRING@[54; 82) "\"This is also a doc c ..."
24 R_PAREN@[82; 83) ")"
25 R_BRACK@[83; 84) "]"
24 WHITESPACE@[84; 85) "\n" 26 WHITESPACE@[84; 85) "\n"
25 R_CURLY@[85; 86) "}" 27 R_CURLY@[85; 86) "}"
26 WHITESPACE@[86; 87) "\n" 28 WHITESPACE@[86; 87) "\n"
diff --git a/crates/ra_syntax/test_data/parser/ok/0051_parameter_attrs.txt b/crates/ra_syntax/test_data/parser/ok/0051_parameter_attrs.txt
index e08fb4988..bfd47d2e1 100644
--- a/crates/ra_syntax/test_data/parser/ok/0051_parameter_attrs.txt
+++ b/crates/ra_syntax/test_data/parser/ok/0051_parameter_attrs.txt
@@ -8,17 +8,21 @@ SOURCE_FILE@[0; 519)
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 TOKEN_TREE@[7; 14) 11 L_BRACK@[7; 8) "["
12 L_BRACK@[7; 8) "[" 12 PATH@[8; 13)
13 IDENT@[8; 13) "attr1" 13 PATH_SEGMENT@[8; 13)
14 R_BRACK@[13; 14) "]" 14 NAME_REF@[8; 13)
15 IDENT@[8; 13) "attr1"
16 R_BRACK@[13; 14) "]"
15 WHITESPACE@[14; 15) " " 17 WHITESPACE@[14; 15) " "
16 ATTR@[15; 23) 18 ATTR@[15; 23)
17 POUND@[15; 16) "#" 19 POUND@[15; 16) "#"
18 TOKEN_TREE@[16; 23) 20 L_BRACK@[16; 17) "["
19 L_BRACK@[16; 17) "[" 21 PATH@[17; 22)
20 IDENT@[17; 22) "attr2" 22 PATH_SEGMENT@[17; 22)
21 R_BRACK@[22; 23) "]" 23 NAME_REF@[17; 22)
24 IDENT@[17; 22) "attr2"
25 R_BRACK@[22; 23) "]"
22 WHITESPACE@[23; 24) " " 26 WHITESPACE@[23; 24) " "
23 PARAM@[24; 33) 27 PARAM@[24; 33)
24 BIND_PAT@[24; 27) 28 BIND_PAT@[24; 27)
@@ -47,10 +51,12 @@ SOURCE_FILE@[0; 519)
47 L_PAREN@[43; 44) "(" 51 L_PAREN@[43; 44) "("
48 ATTR@[44; 52) 52 ATTR@[44; 52)
49 POUND@[44; 45) "#" 53 POUND@[44; 45) "#"
50 TOKEN_TREE@[45; 52) 54 L_BRACK@[45; 46) "["
51 L_BRACK@[45; 46) "[" 55 PATH@[46; 51)
52 IDENT@[46; 51) "attr1" 56 PATH_SEGMENT@[46; 51)
53 R_BRACK@[51; 52) "]" 57 NAME_REF@[46; 51)
58 IDENT@[46; 51) "attr1"
59 R_BRACK@[51; 52) "]"
54 WHITESPACE@[52; 53) " " 60 WHITESPACE@[52; 53) " "
55 PARAM@[53; 58) 61 PARAM@[53; 58)
56 BIND_PAT@[53; 54) 62 BIND_PAT@[53; 54)
@@ -105,10 +111,12 @@ SOURCE_FILE@[0; 519)
105 WHITESPACE@[105; 106) " " 111 WHITESPACE@[105; 106) " "
106 ATTR@[106; 113) 112 ATTR@[106; 113)
107 POUND@[106; 107) "#" 113 POUND@[106; 107) "#"
108 TOKEN_TREE@[107; 113) 114 L_BRACK@[107; 108) "["
109 L_BRACK@[107; 108) "[" 115 PATH@[108; 112)
110 IDENT@[108; 112) "attr" 116 PATH_SEGMENT@[108; 112)
111 R_BRACK@[112; 113) "]" 117 NAME_REF@[108; 112)
118 IDENT@[108; 112) "attr"
119 R_BRACK@[112; 113) "]"
112 WHITESPACE@[113; 114) " " 120 WHITESPACE@[113; 114) " "
113 DOTDOTDOT@[114; 117) "..." 121 DOTDOTDOT@[114; 117) "..."
114 R_PAREN@[117; 118) ")" 122 R_PAREN@[117; 118) ")"
@@ -148,10 +156,12 @@ SOURCE_FILE@[0; 519)
148 L_PAREN@[145; 146) "(" 156 L_PAREN@[145; 146) "("
149 ATTR@[146; 153) 157 ATTR@[146; 153)
150 POUND@[146; 147) "#" 158 POUND@[146; 147) "#"
151 TOKEN_TREE@[147; 153) 159 L_BRACK@[147; 148) "["
152 L_BRACK@[147; 148) "[" 160 PATH@[148; 152)
153 IDENT@[148; 152) "attr" 161 PATH_SEGMENT@[148; 152)
154 R_BRACK@[152; 153) "]" 162 NAME_REF@[148; 152)
163 IDENT@[148; 152) "attr"
164 R_BRACK@[152; 153) "]"
155 WHITESPACE@[153; 154) " " 165 WHITESPACE@[153; 154) " "
156 PARAM@[154; 166) 166 PARAM@[154; 166)
157 REFERENCE_TYPE@[154; 166) 167 REFERENCE_TYPE@[154; 166)
@@ -196,10 +206,12 @@ SOURCE_FILE@[0; 519)
196 L_PAREN@[196; 197) "(" 206 L_PAREN@[196; 197) "("
197 ATTR@[197; 204) 207 ATTR@[197; 204)
198 POUND@[197; 198) "#" 208 POUND@[197; 198) "#"
199 TOKEN_TREE@[198; 204) 209 L_BRACK@[198; 199) "["
200 L_BRACK@[198; 199) "[" 210 PATH@[199; 203)
201 IDENT@[199; 203) "attr" 211 PATH_SEGMENT@[199; 203)
202 R_BRACK@[203; 204) "]" 212 NAME_REF@[199; 203)
213 IDENT@[199; 203) "attr"
214 R_BRACK@[203; 204) "]"
203 WHITESPACE@[204; 205) " " 215 WHITESPACE@[204; 205) " "
204 PARAM@[205; 211) 216 PARAM@[205; 211)
205 PLACEHOLDER_PAT@[205; 206) 217 PLACEHOLDER_PAT@[205; 206)
@@ -216,10 +228,12 @@ SOURCE_FILE@[0; 519)
216 ATTR@[213; 221) 228 ATTR@[213; 221)
217 POUND@[213; 214) "#" 229 POUND@[213; 214) "#"
218 WHITESPACE@[214; 215) " " 230 WHITESPACE@[214; 215) " "
219 TOKEN_TREE@[215; 221) 231 L_BRACK@[215; 216) "["
220 L_BRACK@[215; 216) "[" 232 PATH@[216; 220)
221 IDENT@[216; 220) "attr" 233 PATH_SEGMENT@[216; 220)
222 R_BRACK@[220; 221) "]" 234 NAME_REF@[216; 220)
235 IDENT@[216; 220) "attr"
236 R_BRACK@[220; 221) "]"
223 WHITESPACE@[221; 222) " " 237 WHITESPACE@[221; 222) " "
224 PARAM@[222; 232) 238 PARAM@[222; 232)
225 BIND_PAT@[222; 227) 239 BIND_PAT@[222; 227)
@@ -260,10 +274,12 @@ SOURCE_FILE@[0; 519)
260 L_PAREN@[256; 257) "(" 274 L_PAREN@[256; 257) "("
261 ATTR@[257; 268) 275 ATTR@[257; 268)
262 POUND@[257; 258) "#" 276 POUND@[257; 258) "#"
263 TOKEN_TREE@[258; 268) 277 L_BRACK@[258; 259) "["
264 L_BRACK@[258; 259) "[" 278 PATH@[259; 267)
265 IDENT@[259; 267) "must_use" 279 PATH_SEGMENT@[259; 267)
266 R_BRACK@[267; 268) "]" 280 NAME_REF@[259; 267)
281 IDENT@[259; 267) "must_use"
282 R_BRACK@[267; 268) "]"
267 WHITESPACE@[268; 269) " " 283 WHITESPACE@[268; 269) " "
268 SELF_PARAM@[269; 273) 284 SELF_PARAM@[269; 273)
269 SELF_KW@[269; 273) "self" 285 SELF_KW@[269; 273) "self"
@@ -283,10 +299,12 @@ SOURCE_FILE@[0; 519)
283 L_PAREN@[288; 289) "(" 299 L_PAREN@[288; 289) "("
284 ATTR@[289; 296) 300 ATTR@[289; 296)
285 POUND@[289; 290) "#" 301 POUND@[289; 290) "#"
286 TOKEN_TREE@[290; 296) 302 L_BRACK@[290; 291) "["
287 L_BRACK@[290; 291) "[" 303 PATH@[291; 295)
288 IDENT@[291; 295) "attr" 304 PATH_SEGMENT@[291; 295)
289 R_BRACK@[295; 296) "]" 305 NAME_REF@[291; 295)
306 IDENT@[291; 295) "attr"
307 R_BRACK@[295; 296) "]"
290 WHITESPACE@[296; 297) " " 308 WHITESPACE@[296; 297) " "
291 SELF_PARAM@[297; 301) 309 SELF_PARAM@[297; 301)
292 SELF_KW@[297; 301) "self" 310 SELF_KW@[297; 301) "self"
@@ -306,10 +324,12 @@ SOURCE_FILE@[0; 519)
306 L_PAREN@[316; 317) "(" 324 L_PAREN@[316; 317) "("
307 ATTR@[317; 324) 325 ATTR@[317; 324)
308 POUND@[317; 318) "#" 326 POUND@[317; 318) "#"
309 TOKEN_TREE@[318; 324) 327 L_BRACK@[318; 319) "["
310 L_BRACK@[318; 319) "[" 328 PATH@[319; 323)
311 IDENT@[319; 323) "attr" 329 PATH_SEGMENT@[319; 323)
312 R_BRACK@[323; 324) "]" 330 NAME_REF@[319; 323)
331 IDENT@[319; 323) "attr"
332 R_BRACK@[323; 324) "]"
313 WHITESPACE@[324; 325) " " 333 WHITESPACE@[324; 325) " "
314 SELF_PARAM@[325; 330) 334 SELF_PARAM@[325; 330)
315 AMP@[325; 326) "&" 335 AMP@[325; 326) "&"
@@ -335,10 +355,12 @@ SOURCE_FILE@[0; 519)
335 L_PAREN@[349; 350) "(" 355 L_PAREN@[349; 350) "("
336 ATTR@[350; 357) 356 ATTR@[350; 357)
337 POUND@[350; 351) "#" 357 POUND@[350; 351) "#"
338 TOKEN_TREE@[351; 357) 358 L_BRACK@[351; 352) "["
339 L_BRACK@[351; 352) "[" 359 PATH@[352; 356)
340 IDENT@[352; 356) "attr" 360 PATH_SEGMENT@[352; 356)
341 R_BRACK@[356; 357) "]" 361 NAME_REF@[352; 356)
362 IDENT@[352; 356) "attr"
363 R_BRACK@[356; 357) "]"
342 WHITESPACE@[357; 358) " " 364 WHITESPACE@[357; 358) " "
343 SELF_PARAM@[358; 367) 365 SELF_PARAM@[358; 367)
344 AMP@[358; 359) "&" 366 AMP@[358; 359) "&"
@@ -366,10 +388,12 @@ SOURCE_FILE@[0; 519)
366 L_PAREN@[386; 387) "(" 388 L_PAREN@[386; 387) "("
367 ATTR@[387; 394) 389 ATTR@[387; 394)
368 POUND@[387; 388) "#" 390 POUND@[387; 388) "#"
369 TOKEN_TREE@[388; 394) 391 L_BRACK@[388; 389) "["
370 L_BRACK@[388; 389) "[" 392 PATH@[389; 393)
371 IDENT@[389; 393) "attr" 393 PATH_SEGMENT@[389; 393)
372 R_BRACK@[393; 394) "]" 394 NAME_REF@[389; 393)
395 IDENT@[389; 393) "attr"
396 R_BRACK@[393; 394) "]"
373 WHITESPACE@[394; 395) " " 397 WHITESPACE@[394; 395) " "
374 SELF_PARAM@[395; 403) 398 SELF_PARAM@[395; 403)
375 AMP@[395; 396) "&" 399 AMP@[395; 396) "&"
@@ -397,10 +421,12 @@ SOURCE_FILE@[0; 519)
397 L_PAREN@[422; 423) "(" 421 L_PAREN@[422; 423) "("
398 ATTR@[423; 430) 422 ATTR@[423; 430)
399 POUND@[423; 424) "#" 423 POUND@[423; 424) "#"
400 TOKEN_TREE@[424; 430) 424 L_BRACK@[424; 425) "["
401 L_BRACK@[424; 425) "[" 425 PATH@[425; 429)
402 IDENT@[425; 429) "attr" 426 PATH_SEGMENT@[425; 429)
403 R_BRACK@[429; 430) "]" 427 NAME_REF@[425; 429)
428 IDENT@[425; 429) "attr"
429 R_BRACK@[429; 430) "]"
404 WHITESPACE@[430; 431) " " 430 WHITESPACE@[430; 431) " "
405 SELF_PARAM@[431; 443) 431 SELF_PARAM@[431; 443)
406 AMP@[431; 432) "&" 432 AMP@[431; 432) "&"
@@ -425,10 +451,12 @@ SOURCE_FILE@[0; 519)
425 L_PAREN@[457; 458) "(" 451 L_PAREN@[457; 458) "("
426 ATTR@[458; 465) 452 ATTR@[458; 465)
427 POUND@[458; 459) "#" 453 POUND@[458; 459) "#"
428 TOKEN_TREE@[459; 465) 454 L_BRACK@[459; 460) "["
429 L_BRACK@[459; 460) "[" 455 PATH@[460; 464)
430 IDENT@[460; 464) "attr" 456 PATH_SEGMENT@[460; 464)
431 R_BRACK@[464; 465) "]" 457 NAME_REF@[460; 464)
458 IDENT@[460; 464) "attr"
459 R_BRACK@[464; 465) "]"
432 WHITESPACE@[465; 466) " " 460 WHITESPACE@[465; 466) " "
433 SELF_PARAM@[466; 476) 461 SELF_PARAM@[466; 476)
434 SELF_KW@[466; 470) "self" 462 SELF_KW@[466; 470) "self"
@@ -455,10 +483,12 @@ SOURCE_FILE@[0; 519)
455 L_PAREN@[490; 491) "(" 483 L_PAREN@[490; 491) "("
456 ATTR@[491; 498) 484 ATTR@[491; 498)
457 POUND@[491; 492) "#" 485 POUND@[491; 492) "#"
458 TOKEN_TREE@[492; 498) 486 L_BRACK@[492; 493) "["
459 L_BRACK@[492; 493) "[" 487 PATH@[493; 497)
460 IDENT@[493; 497) "attr" 488 PATH_SEGMENT@[493; 497)
461 R_BRACK@[497; 498) "]" 489 NAME_REF@[493; 497)
490 IDENT@[493; 497) "attr"
491 R_BRACK@[497; 498) "]"
462 WHITESPACE@[498; 499) " " 492 WHITESPACE@[498; 499) " "
463 SELF_PARAM@[499; 513) 493 SELF_PARAM@[499; 513)
464 SELF_KW@[499; 503) "self" 494 SELF_KW@[499; 503) "self"
diff --git a/crates/ra_syntax/test_data/parser/ok/0053_outer_attribute_on_macro_rules.txt b/crates/ra_syntax/test_data/parser/ok/0053_outer_attribute_on_macro_rules.txt
index f77221f76..04ff0e2ff 100644
--- a/crates/ra_syntax/test_data/parser/ok/0053_outer_attribute_on_macro_rules.txt
+++ b/crates/ra_syntax/test_data/parser/ok/0053_outer_attribute_on_macro_rules.txt
@@ -4,10 +4,12 @@ SOURCE_FILE@[0; 65)
4 WHITESPACE@[13; 14) "\n" 4 WHITESPACE@[13; 14) "\n"
5 ATTR@[14; 29) 5 ATTR@[14; 29)
6 POUND@[14; 15) "#" 6 POUND@[14; 15) "#"
7 TOKEN_TREE@[15; 29) 7 L_BRACK@[15; 16) "["
8 L_BRACK@[15; 16) "[" 8 PATH@[16; 28)
9 IDENT@[16; 28) "macro_export" 9 PATH_SEGMENT@[16; 28)
10 R_BRACK@[28; 29) "]" 10 NAME_REF@[16; 28)
11 IDENT@[16; 28) "macro_export"
12 R_BRACK@[28; 29) "]"
11 WHITESPACE@[29; 30) "\n" 13 WHITESPACE@[29; 30) "\n"
12 PATH@[30; 41) 14 PATH@[30; 41)
13 PATH_SEGMENT@[30; 41) 15 PATH_SEGMENT@[30; 41)