diff options
author | Aleksey Kladov <[email protected]> | 2018-07-31 17:55:33 +0100 |
---|---|---|
committer | Aleksey Kladov <[email protected]> | 2018-07-31 17:55:33 +0100 |
commit | 3d70aeb412ab2ebc8e7b9418d75e8c3cd2d63df3 (patch) | |
tree | 11ad5206849da97917616c36cac4224f763057bc | |
parent | 63e2ed4e75bc16cdd1882be031d026469b49dbc4 (diff) |
Use names&refs
-rw-r--r-- | src/parser/grammar/type_args.rs | 2 | ||||
-rw-r--r-- | src/parser/grammar/type_params.rs | 2 | ||||
-rw-r--r-- | tests/data/parser/inline/0014_type_item_type_params.txt | 3 | ||||
-rw-r--r-- | tests/data/parser/inline/0041_type_param_bounds.txt | 3 | ||||
-rw-r--r-- | tests/data/parser/inline/0042_type_param_default.txt | 5 | ||||
-rw-r--r-- | tests/data/parser/inline/0056_trait_item.txt | 3 | ||||
-rw-r--r-- | tests/data/parser/inline/0058_type_arg.txt | 5 | ||||
-rw-r--r-- | tests/data/parser/ok/0018_struct_type_params.txt | 30 | ||||
-rw-r--r-- | tests/data/parser/ok/0019_enums.txt | 3 | ||||
-rw-r--r-- | tests/data/parser/ok/0020_type_param_bounds.txt | 32 |
10 files changed, 56 insertions, 32 deletions
diff --git a/src/parser/grammar/type_args.rs b/src/parser/grammar/type_args.rs index 6b2217012..276c8b4ae 100644 --- a/src/parser/grammar/type_args.rs +++ b/src/parser/grammar/type_args.rs | |||
@@ -35,7 +35,7 @@ fn type_arg(p: &mut Parser) { | |||
35 | m.complete(p, LIFETIME_ARG); | 35 | m.complete(p, LIFETIME_ARG); |
36 | }, | 36 | }, |
37 | IDENT if p.nth(1) == EQ => { | 37 | IDENT if p.nth(1) == EQ => { |
38 | p.bump(); | 38 | name_ref(p); |
39 | p.bump(); | 39 | p.bump(); |
40 | types::type_(p); | 40 | types::type_(p); |
41 | m.complete(p, ASSOC_TYPE_ARG); | 41 | m.complete(p, ASSOC_TYPE_ARG); |
diff --git a/src/parser/grammar/type_params.rs b/src/parser/grammar/type_params.rs index 3648ab5f3..ccb44c0df 100644 --- a/src/parser/grammar/type_params.rs +++ b/src/parser/grammar/type_params.rs | |||
@@ -38,7 +38,7 @@ pub(super) fn list(p: &mut Parser) { | |||
38 | fn type_param(p: &mut Parser) { | 38 | fn type_param(p: &mut Parser) { |
39 | assert!(p.at(IDENT)); | 39 | assert!(p.at(IDENT)); |
40 | let m = p.start(); | 40 | let m = p.start(); |
41 | p.bump(); | 41 | name(p); |
42 | if p.at(COLON) { | 42 | if p.at(COLON) { |
43 | bounds(p); | 43 | bounds(p); |
44 | } | 44 | } |
diff --git a/tests/data/parser/inline/0014_type_item_type_params.txt b/tests/data/parser/inline/0014_type_item_type_params.txt index 98a71414e..437ce13e1 100644 --- a/tests/data/parser/inline/0014_type_item_type_params.txt +++ b/tests/data/parser/inline/0014_type_item_type_params.txt | |||
@@ -7,7 +7,8 @@ FILE@[0; 21) | |||
7 | TYPE_PARAM_LIST@[11; 15) | 7 | TYPE_PARAM_LIST@[11; 15) |
8 | L_ANGLE@[11; 12) | 8 | L_ANGLE@[11; 12) |
9 | TYPE_PARAM@[12; 13) | 9 | TYPE_PARAM@[12; 13) |
10 | IDENT@[12; 13) "T" | 10 | NAME@[12; 13) |
11 | IDENT@[12; 13) "T" | ||
11 | R_ANGLE@[13; 14) | 12 | R_ANGLE@[13; 14) |
12 | WHITESPACE@[14; 15) | 13 | WHITESPACE@[14; 15) |
13 | EQ@[15; 16) | 14 | EQ@[15; 16) |
diff --git a/tests/data/parser/inline/0041_type_param_bounds.txt b/tests/data/parser/inline/0041_type_param_bounds.txt index d607bd416..c03a80fa0 100644 --- a/tests/data/parser/inline/0041_type_param_bounds.txt +++ b/tests/data/parser/inline/0041_type_param_bounds.txt | |||
@@ -7,7 +7,8 @@ FILE@[0; 35) | |||
7 | TYPE_PARAM_LIST@[8; 33) | 7 | TYPE_PARAM_LIST@[8; 33) |
8 | L_ANGLE@[8; 9) | 8 | L_ANGLE@[8; 9) |
9 | TYPE_PARAM@[9; 32) | 9 | TYPE_PARAM@[9; 32) |
10 | IDENT@[9; 10) "T" | 10 | NAME@[9; 10) |
11 | IDENT@[9; 10) "T" | ||
11 | COLON@[10; 11) | 12 | COLON@[10; 11) |
12 | WHITESPACE@[11; 12) | 13 | WHITESPACE@[11; 12) |
13 | LIFETIME@[12; 14) "'a" | 14 | LIFETIME@[12; 14) "'a" |
diff --git a/tests/data/parser/inline/0042_type_param_default.txt b/tests/data/parser/inline/0042_type_param_default.txt index 9642a9084..24671ed6b 100644 --- a/tests/data/parser/inline/0042_type_param_default.txt +++ b/tests/data/parser/inline/0042_type_param_default.txt | |||
@@ -7,8 +7,9 @@ FILE@[0; 19) | |||
7 | TYPE_PARAM_LIST@[8; 17) | 7 | TYPE_PARAM_LIST@[8; 17) |
8 | L_ANGLE@[8; 9) | 8 | L_ANGLE@[8; 9) |
9 | TYPE_PARAM@[9; 16) | 9 | TYPE_PARAM@[9; 16) |
10 | IDENT@[9; 10) "T" | 10 | NAME@[9; 11) |
11 | WHITESPACE@[10; 11) | 11 | IDENT@[9; 10) "T" |
12 | WHITESPACE@[10; 11) | ||
12 | EQ@[11; 12) | 13 | EQ@[11; 12) |
13 | PATH_TYPE@[12; 16) | 14 | PATH_TYPE@[12; 16) |
14 | PATH@[12; 16) | 15 | PATH@[12; 16) |
diff --git a/tests/data/parser/inline/0056_trait_item.txt b/tests/data/parser/inline/0056_trait_item.txt index 87efc78e9..7ed8d4a55 100644 --- a/tests/data/parser/inline/0056_trait_item.txt +++ b/tests/data/parser/inline/0056_trait_item.txt | |||
@@ -7,7 +7,8 @@ FILE@[0; 42) | |||
7 | TYPE_PARAM_LIST@[7; 10) | 7 | TYPE_PARAM_LIST@[7; 10) |
8 | L_ANGLE@[7; 8) | 8 | L_ANGLE@[7; 8) |
9 | TYPE_PARAM@[8; 9) | 9 | TYPE_PARAM@[8; 9) |
10 | IDENT@[8; 9) "U" | 10 | NAME@[8; 9) |
11 | IDENT@[8; 9) "U" | ||
11 | R_ANGLE@[9; 10) | 12 | R_ANGLE@[9; 10) |
12 | COLON@[10; 11) | 13 | COLON@[10; 11) |
13 | PATH@[11; 17) | 14 | PATH@[11; 17) |
diff --git a/tests/data/parser/inline/0058_type_arg.txt b/tests/data/parser/inline/0058_type_arg.txt index af4bcedef..7a3a2aa10 100644 --- a/tests/data/parser/inline/0058_type_arg.txt +++ b/tests/data/parser/inline/0058_type_arg.txt | |||
@@ -26,8 +26,9 @@ FILE@[0; 35) | |||
26 | IDENT@[20; 23) "i32" | 26 | IDENT@[20; 23) "i32" |
27 | COMMA@[23; 24) | 27 | COMMA@[23; 24) |
28 | ASSOC_TYPE_ARG@[24; 33) | 28 | ASSOC_TYPE_ARG@[24; 33) |
29 | WHITESPACE@[24; 25) | 29 | NAME_REF@[24; 29) |
30 | IDENT@[25; 29) "Item" | 30 | WHITESPACE@[24; 25) |
31 | IDENT@[25; 29) "Item" | ||
31 | EQ@[29; 30) | 32 | EQ@[29; 30) |
32 | PATH_TYPE@[30; 33) | 33 | PATH_TYPE@[30; 33) |
33 | PATH@[30; 33) | 34 | PATH@[30; 33) |
diff --git a/tests/data/parser/ok/0018_struct_type_params.txt b/tests/data/parser/ok/0018_struct_type_params.txt index 8e1feab38..1d3b4a576 100644 --- a/tests/data/parser/ok/0018_struct_type_params.txt +++ b/tests/data/parser/ok/0018_struct_type_params.txt | |||
@@ -7,7 +7,8 @@ FILE@[0; 290) | |||
7 | TYPE_PARAM_LIST@[9; 12) | 7 | TYPE_PARAM_LIST@[9; 12) |
8 | L_ANGLE@[9; 10) | 8 | L_ANGLE@[9; 10) |
9 | TYPE_PARAM@[10; 11) | 9 | TYPE_PARAM@[10; 11) |
10 | IDENT@[10; 11) "T" | 10 | NAME@[10; 11) |
11 | IDENT@[10; 11) "T" | ||
11 | R_ANGLE@[11; 12) | 12 | R_ANGLE@[11; 12) |
12 | SEMI@[12; 13) | 13 | SEMI@[12; 13) |
13 | WHITESPACE@[13; 14) | 14 | WHITESPACE@[13; 14) |
@@ -19,7 +20,8 @@ FILE@[0; 290) | |||
19 | TYPE_PARAM_LIST@[23; 26) | 20 | TYPE_PARAM_LIST@[23; 26) |
20 | L_ANGLE@[23; 24) | 21 | L_ANGLE@[23; 24) |
21 | TYPE_PARAM@[24; 25) | 22 | TYPE_PARAM@[24; 25) |
22 | IDENT@[24; 25) "T" | 23 | NAME@[24; 25) |
24 | IDENT@[24; 25) "T" | ||
23 | R_ANGLE@[25; 26) | 25 | R_ANGLE@[25; 26) |
24 | L_PAREN@[26; 27) | 26 | L_PAREN@[26; 27) |
25 | POS_FIELD@[27; 30) | 27 | POS_FIELD@[27; 30) |
@@ -39,7 +41,8 @@ FILE@[0; 290) | |||
39 | TYPE_PARAM_LIST@[42; 46) | 41 | TYPE_PARAM_LIST@[42; 46) |
40 | L_ANGLE@[42; 43) | 42 | L_ANGLE@[42; 43) |
41 | TYPE_PARAM@[43; 44) | 43 | TYPE_PARAM@[43; 44) |
42 | IDENT@[43; 44) "T" | 44 | NAME@[43; 44) |
45 | IDENT@[43; 44) "T" | ||
43 | R_ANGLE@[44; 45) | 46 | R_ANGLE@[44; 45) |
44 | WHITESPACE@[45; 46) | 47 | WHITESPACE@[45; 46) |
45 | L_CURLY@[46; 47) | 48 | L_CURLY@[46; 47) |
@@ -205,7 +208,8 @@ FILE@[0; 290) | |||
205 | TYPE_PARAM_LIST@[245; 248) | 208 | TYPE_PARAM_LIST@[245; 248) |
206 | L_ANGLE@[245; 246) | 209 | L_ANGLE@[245; 246) |
207 | TYPE_PARAM@[246; 247) | 210 | TYPE_PARAM@[246; 247) |
208 | IDENT@[246; 247) "T" | 211 | NAME@[246; 247) |
212 | IDENT@[246; 247) "T" | ||
209 | R_ANGLE@[247; 248) | 213 | R_ANGLE@[247; 248) |
210 | SEMI@[248; 249) | 214 | SEMI@[248; 249) |
211 | WHITESPACE@[249; 250) | 215 | WHITESPACE@[249; 250) |
@@ -217,11 +221,13 @@ FILE@[0; 290) | |||
217 | TYPE_PARAM_LIST@[260; 266) | 221 | TYPE_PARAM_LIST@[260; 266) |
218 | L_ANGLE@[260; 261) | 222 | L_ANGLE@[260; 261) |
219 | TYPE_PARAM@[261; 262) | 223 | TYPE_PARAM@[261; 262) |
220 | IDENT@[261; 262) "T" | 224 | NAME@[261; 262) |
225 | IDENT@[261; 262) "T" | ||
221 | COMMA@[262; 263) | 226 | COMMA@[262; 263) |
222 | TYPE_PARAM@[263; 265) | 227 | TYPE_PARAM@[263; 265) |
223 | WHITESPACE@[263; 264) | 228 | NAME@[263; 265) |
224 | IDENT@[264; 265) "U" | 229 | WHITESPACE@[263; 264) |
230 | IDENT@[264; 265) "U" | ||
225 | R_ANGLE@[265; 266) | 231 | R_ANGLE@[265; 266) |
226 | SEMI@[266; 267) | 232 | SEMI@[266; 267) |
227 | WHITESPACE@[267; 268) | 233 | WHITESPACE@[267; 268) |
@@ -236,12 +242,14 @@ FILE@[0; 290) | |||
236 | LIFETIME@[279; 281) "'a" | 242 | LIFETIME@[279; 281) "'a" |
237 | COMMA@[281; 282) | 243 | COMMA@[281; 282) |
238 | TYPE_PARAM@[282; 284) | 244 | TYPE_PARAM@[282; 284) |
239 | WHITESPACE@[282; 283) | 245 | NAME@[282; 284) |
240 | IDENT@[283; 284) "T" | 246 | WHITESPACE@[282; 283) |
247 | IDENT@[283; 284) "T" | ||
241 | COMMA@[284; 285) | 248 | COMMA@[284; 285) |
242 | TYPE_PARAM@[285; 287) | 249 | TYPE_PARAM@[285; 287) |
243 | WHITESPACE@[285; 286) | 250 | NAME@[285; 287) |
244 | IDENT@[286; 287) "U" | 251 | WHITESPACE@[285; 286) |
252 | IDENT@[286; 287) "U" | ||
245 | R_ANGLE@[287; 288) | 253 | R_ANGLE@[287; 288) |
246 | SEMI@[288; 289) | 254 | SEMI@[288; 289) |
247 | WHITESPACE@[289; 290) | 255 | WHITESPACE@[289; 290) |
diff --git a/tests/data/parser/ok/0019_enums.txt b/tests/data/parser/ok/0019_enums.txt index 09253dcea..86d29e650 100644 --- a/tests/data/parser/ok/0019_enums.txt +++ b/tests/data/parser/ok/0019_enums.txt | |||
@@ -17,7 +17,8 @@ FILE@[0; 182) | |||
17 | TYPE_PARAM_LIST@[20; 24) | 17 | TYPE_PARAM_LIST@[20; 24) |
18 | L_ANGLE@[20; 21) | 18 | L_ANGLE@[20; 21) |
19 | TYPE_PARAM@[21; 22) | 19 | TYPE_PARAM@[21; 22) |
20 | IDENT@[21; 22) "T" | 20 | NAME@[21; 22) |
21 | IDENT@[21; 22) "T" | ||
21 | R_ANGLE@[22; 23) | 22 | R_ANGLE@[22; 23) |
22 | WHITESPACE@[23; 24) | 23 | WHITESPACE@[23; 24) |
23 | L_CURLY@[24; 25) | 24 | L_CURLY@[24; 25) |
diff --git a/tests/data/parser/ok/0020_type_param_bounds.txt b/tests/data/parser/ok/0020_type_param_bounds.txt index 7132eec6e..9ff2df578 100644 --- a/tests/data/parser/ok/0020_type_param_bounds.txt +++ b/tests/data/parser/ok/0020_type_param_bounds.txt | |||
@@ -7,7 +7,8 @@ FILE@[0; 200) | |||
7 | TYPE_PARAM_LIST@[8; 11) | 7 | TYPE_PARAM_LIST@[8; 11) |
8 | L_ANGLE@[8; 9) | 8 | L_ANGLE@[8; 9) |
9 | TYPE_PARAM@[9; 10) | 9 | TYPE_PARAM@[9; 10) |
10 | IDENT@[9; 10) "T" | 10 | NAME@[9; 10) |
11 | IDENT@[9; 10) "T" | ||
11 | R_ANGLE@[10; 11) | 12 | R_ANGLE@[10; 11) |
12 | SEMI@[11; 12) | 13 | SEMI@[11; 12) |
13 | WHITESPACE@[12; 13) | 14 | WHITESPACE@[12; 13) |
@@ -19,7 +20,8 @@ FILE@[0; 200) | |||
19 | TYPE_PARAM_LIST@[21; 25) | 20 | TYPE_PARAM_LIST@[21; 25) |
20 | L_ANGLE@[21; 22) | 21 | L_ANGLE@[21; 22) |
21 | TYPE_PARAM@[22; 24) | 22 | TYPE_PARAM@[22; 24) |
22 | IDENT@[22; 23) "T" | 23 | NAME@[22; 23) |
24 | IDENT@[22; 23) "T" | ||
23 | COLON@[23; 24) | 25 | COLON@[23; 24) |
24 | R_ANGLE@[24; 25) | 26 | R_ANGLE@[24; 25) |
25 | SEMI@[25; 26) | 27 | SEMI@[25; 26) |
@@ -32,7 +34,8 @@ FILE@[0; 200) | |||
32 | TYPE_PARAM_LIST@[35; 42) | 34 | TYPE_PARAM_LIST@[35; 42) |
33 | L_ANGLE@[35; 36) | 35 | L_ANGLE@[35; 36) |
34 | TYPE_PARAM@[36; 41) | 36 | TYPE_PARAM@[36; 41) |
35 | IDENT@[36; 37) "T" | 37 | NAME@[36; 37) |
38 | IDENT@[36; 37) "T" | ||
36 | COLON@[37; 38) | 39 | COLON@[37; 38) |
37 | WHITESPACE@[38; 39) | 40 | WHITESPACE@[38; 39) |
38 | LIFETIME@[39; 41) "'a" | 41 | LIFETIME@[39; 41) "'a" |
@@ -47,7 +50,8 @@ FILE@[0; 200) | |||
47 | TYPE_PARAM_LIST@[52; 62) | 50 | TYPE_PARAM_LIST@[52; 62) |
48 | L_ANGLE@[52; 53) | 51 | L_ANGLE@[52; 53) |
49 | TYPE_PARAM@[53; 61) | 52 | TYPE_PARAM@[53; 61) |
50 | IDENT@[53; 54) "T" | 53 | NAME@[53; 54) |
54 | IDENT@[53; 54) "T" | ||
51 | COLON@[54; 55) | 55 | COLON@[54; 55) |
52 | WHITESPACE@[55; 56) | 56 | WHITESPACE@[55; 56) |
53 | LIFETIME@[56; 58) "'a" | 57 | LIFETIME@[56; 58) "'a" |
@@ -65,7 +69,8 @@ FILE@[0; 200) | |||
65 | TYPE_PARAM_LIST@[72; 85) | 69 | TYPE_PARAM_LIST@[72; 85) |
66 | L_ANGLE@[72; 73) | 70 | L_ANGLE@[72; 73) |
67 | TYPE_PARAM@[73; 84) | 71 | TYPE_PARAM@[73; 84) |
68 | IDENT@[73; 74) "T" | 72 | NAME@[73; 74) |
73 | IDENT@[73; 74) "T" | ||
69 | COLON@[74; 75) | 74 | COLON@[74; 75) |
70 | WHITESPACE@[75; 76) | 75 | WHITESPACE@[75; 76) |
71 | LIFETIME@[76; 78) "'a" | 76 | LIFETIME@[76; 78) "'a" |
@@ -85,7 +90,8 @@ FILE@[0; 200) | |||
85 | TYPE_PARAM_LIST@[95; 115) | 90 | TYPE_PARAM_LIST@[95; 115) |
86 | L_ANGLE@[95; 96) | 91 | L_ANGLE@[95; 96) |
87 | TYPE_PARAM@[96; 114) | 92 | TYPE_PARAM@[96; 114) |
88 | IDENT@[96; 97) "T" | 93 | NAME@[96; 97) |
94 | IDENT@[96; 97) "T" | ||
89 | COLON@[97; 98) | 95 | COLON@[97; 98) |
90 | WHITESPACE@[98; 99) | 96 | WHITESPACE@[98; 99) |
91 | LIFETIME@[99; 101) "'a" | 97 | LIFETIME@[99; 101) "'a" |
@@ -111,7 +117,8 @@ FILE@[0; 200) | |||
111 | TYPE_PARAM_LIST@[125; 142) | 117 | TYPE_PARAM_LIST@[125; 142) |
112 | L_ANGLE@[125; 126) | 118 | L_ANGLE@[125; 126) |
113 | TYPE_PARAM@[126; 141) | 119 | TYPE_PARAM@[126; 141) |
114 | IDENT@[126; 127) "T" | 120 | NAME@[126; 127) |
121 | IDENT@[126; 127) "T" | ||
115 | COLON@[127; 128) | 122 | COLON@[127; 128) |
116 | PATH@[128; 135) | 123 | PATH@[128; 135) |
117 | PATH_SEGMENT@[128; 135) | 124 | PATH_SEGMENT@[128; 135) |
@@ -136,7 +143,8 @@ FILE@[0; 200) | |||
136 | TYPE_PARAM_LIST@[152; 179) | 143 | TYPE_PARAM_LIST@[152; 179) |
137 | L_ANGLE@[152; 153) | 144 | L_ANGLE@[152; 153) |
138 | TYPE_PARAM@[153; 178) | 145 | TYPE_PARAM@[153; 178) |
139 | IDENT@[153; 154) "T" | 146 | NAME@[153; 154) |
147 | IDENT@[153; 154) "T" | ||
140 | COLON@[154; 155) | 148 | COLON@[154; 155) |
141 | PATH@[155; 162) | 149 | PATH@[155; 162) |
142 | PATH_SEGMENT@[155; 162) | 150 | PATH_SEGMENT@[155; 162) |
@@ -170,12 +178,14 @@ FILE@[0; 200) | |||
170 | TYPE_PARAM_LIST@[189; 198) | 178 | TYPE_PARAM_LIST@[189; 198) |
171 | L_ANGLE@[189; 190) | 179 | L_ANGLE@[189; 190) |
172 | TYPE_PARAM@[190; 192) | 180 | TYPE_PARAM@[190; 192) |
173 | IDENT@[190; 191) "T" | 181 | NAME@[190; 191) |
182 | IDENT@[190; 191) "T" | ||
174 | COLON@[191; 192) | 183 | COLON@[191; 192) |
175 | COMMA@[192; 193) | 184 | COMMA@[192; 193) |
176 | TYPE_PARAM@[193; 196) | 185 | TYPE_PARAM@[193; 196) |
177 | WHITESPACE@[193; 194) | 186 | NAME@[193; 195) |
178 | IDENT@[194; 195) "U" | 187 | WHITESPACE@[193; 194) |
188 | IDENT@[194; 195) "U" | ||
179 | COLON@[195; 196) | 189 | COLON@[195; 196) |
180 | COMMA@[196; 197) | 190 | COMMA@[196; 197) |
181 | R_ANGLE@[197; 198) | 191 | R_ANGLE@[197; 198) |