aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--crates/ra_parser/src/grammar/type_params.rs16
-rw-r--r--crates/ra_syntax/test_data/parser/err/0044_unexpected_for_type.rast324
-rw-r--r--crates/ra_syntax/test_data/parser/err/0044_unexpected_for_type.rs12
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0003_where_pred_for.rast252
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0003_where_pred_for.rs16
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0067_where_for_pred.rast392
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0067_where_for_pred.rs30
7 files changed, 670 insertions, 372 deletions
diff --git a/crates/ra_parser/src/grammar/type_params.rs b/crates/ra_parser/src/grammar/type_params.rs
index b3508c732..325d566ad 100644
--- a/crates/ra_parser/src/grammar/type_params.rs
+++ b/crates/ra_parser/src/grammar/type_params.rs
@@ -195,22 +195,6 @@ fn where_predicate(p: &mut Parser) {
195 // where 195 // where
196 // for<'a> F: Fn(&'a str) 196 // for<'a> F: Fn(&'a str)
197 // { } 197 // { }
198 // fn for_ref<F>()
199 // where
200 // for<'a> &'a F: Debug
201 // { }
202 // fn for_parens<F>()
203 // where
204 // for<'a> (&'a F): Fn(&'a str)
205 // { }
206 // fn for_slice<F>()
207 // where
208 // for<'a> [&'a F]: Eq
209 // { }
210 // fn for_qpath<T>(_t: &T)
211 // where
212 // for<'a> <&'a T as Baz>::Foo: Iterator
213 // { }
214 if p.at(T![for]) { 198 if p.at(T![for]) {
215 types::for_binder(p); 199 types::for_binder(p);
216 } 200 }
diff --git a/crates/ra_syntax/test_data/parser/err/0044_unexpected_for_type.rast b/crates/ra_syntax/test_data/parser/err/0044_unexpected_for_type.rast
index 3400beff0..cb90f28bc 100644
--- a/crates/ra_syntax/test_data/parser/err/0044_unexpected_for_type.rast
+++ b/crates/ra_syntax/test_data/parser/err/0044_unexpected_for_type.rast
@@ -1,88 +1,240 @@
1SOURCE_FILE@0..79 1SOURCE_FILE@0..239
2 TYPE_ALIAS_DEF@0..25 2 TYPE_ALIAS_DEF@0..30
3 [email protected] "type" 3 [email protected] "type"
4 [email protected] " " 4 [email protected] " "
5 [email protected] 5 [email protected]
6 [email protected] "A" 6 [email protected] "ForRef"
7 [email protected] " " 7 [email protected] " "
8 [email protected] "=" 8 [email protected] "="
9 [email protected] " " 9 [email protected] " "
10 [email protected] 10 [email protected]
11 [email protected] "for" 11 [email protected] "for"
12 [email protected] 12 [email protected]
13 [email protected] "<" 13 [email protected] "<"
14 [email protected] 14 [email protected]
15 [email protected] "\'a" 15 [email protected] "\'a"
16 [email protected] ">" 16 [email protected] ">"
17 [email protected] " " 17 [email protected] " "
18 [email protected] 18 [email protected]
19 [email protected] "&" 19 [email protected] "&"
20 [email protected] "\'a" 20 [email protected] "\'a"
21 [email protected] " " 21 [email protected] " "
22 [email protected] 22 [email protected]
23 [email protected] 23 [email protected]
24 [email protected] 24 [email protected]
25 [email protected] 25 [email protected]
26 [email protected] "u32" 26 [email protected] "u32"
27 [email protected] ";" 27 [email protected] ";"
28 [email protected] "\n" 28 [email protected] "\n"
29 [email protected] 29 [email protected]
30 [email protected] "type" 30 [email protected] "type"
31 [email protected] " " 31 [email protected] " "
32 [email protected] 32 [email protected]
33 [email protected] "B" 33 [email protected] "ForTup"
34 [email protected] " " 34 [email protected] " "
35 [email protected] "=" 35 [email protected] "="
36 [email protected] " " 36 [email protected] " "
37 [email protected] 37 [email protected]
38 [email protected] "for" 38 [email protected] "for"
39 [email protected] 39 [email protected]
40 [email protected] "<" 40 [email protected] "<"
41 [email protected] 41 [email protected]
42 [email protected] "\'a" 42 [email protected] "\'a"
43 [email protected] ">" 43 [email protected] ">"
44 [email protected] " " 44 [email protected] " "
45 [email protected] 45 [email protected]
46 [email protected] "(" 46 [email protected] "("
47 [email protected] 47 [email protected]
48 [email protected] "&" 48 [email protected] "&"
49 [email protected] "\'a" 49 [email protected] "\'a"
50 [email protected] " " 50 [email protected] " "
51 [email protected] 51 [email protected]
52 [email protected] 52 [email protected]
53 [email protected] 53 [email protected]
54 [email protected] 54 [email protected]
55 [email protected] "u32" 55 [email protected] "u32"
56 [email protected] "," 56 [email protected] ","
57 [email protected] ")" 57 [email protected] ")"
58 [email protected] ";" 58 [email protected] ";"
59 [email protected] "\n" 59 [email protected] "\n"
60 [email protected] 60 [email protected]
61 [email protected] "type" 61 [email protected] "type"
62 [email protected] " " 62 [email protected] " "
63 [email protected] 63 [email protected]
64 [email protected] "B" 64 [email protected] "ForSlice"
65 [email protected] " " 65 [email protected] " "
66 [email protected] "=" 66 [email protected] "="
67 [email protected] " " 67 [email protected] " "
68 [email protected] 68 [email protected]
69 [email protected] "for" 69 [email protected] "for"
70 [email protected] 70 [email protected]
71 [email protected] "<" 71 [email protected] "<"
72 [email protected] 72 [email protected]
73 [email protected] "\'a" 73 [email protected] "\'a"
74 [email protected] ">" 74 [email protected] ">"
75 [email protected] " " 75 [email protected] " "
76 [email protected] 76 [email protected]
77 [email protected] "[" 77 [email protected] "["
78 [email protected] 78 [email protected]
79 [email protected] 79 [email protected]
80 [email protected] 80 [email protected]
81 [email protected] 81 [email protected]
82 [email protected] "u32" 82 [email protected] "u32"
83 [email protected] "]" 83 [email protected] "]"
84 [email protected] ";" 84 [email protected] ";"
85 [email protected] "\n" 85 [email protected] "\n"
86error 16..16: expected a function pointer or path 86 [email protected]
87error 42..42: expected a function pointer or path 87 [email protected] "type"
88error 71..71: expected a function pointer or path 88 [email protected] " "
89 [email protected]
90 [email protected] "ForForFn"
91 [email protected] " "
92 [email protected] "="
93 [email protected] " "
94 [email protected]
95 [email protected] "for"
96 [email protected]
97 [email protected] "<"
98 [email protected]
99 [email protected] "\'a"
100 [email protected] ">"
101 [email protected] " "
102 [email protected]
103 [email protected] "for"
104 [email protected]
105 [email protected] "<"
106 [email protected]
107 [email protected] "\'b"
108 [email protected] ">"
109 [email protected] " "
110 [email protected]
111 [email protected] "fn"
112 [email protected]
113 [email protected] "("
114 [email protected]
115 [email protected]
116 [email protected] "&"
117 [email protected] "\'a"
118 [email protected] " "
119 [email protected]
120 [email protected]
121 [email protected]
122 [email protected]
123 [email protected] "i32"
124 [email protected] ","
125 [email protected] " "
126 [email protected]
127 [email protected]
128 [email protected] "&"
129 [email protected] "\'b"
130 [email protected] " "
131 [email protected]
132 [email protected]
133 [email protected]
134 [email protected]
135 [email protected] "i32"
136 [email protected] ")"
137 [email protected] ";"
138 [email protected] "\n"
139 [email protected]
140 [email protected] "fn"
141 [email protected] " "
142 [email protected]
143 [email protected] "for_for_for"
144 [email protected]
145 [email protected] "<"
146 [email protected]
147 [email protected]
148 [email protected] "T"
149 [email protected] ">"
150 [email protected]
151 [email protected] "("
152 [email protected] ")"
153 [email protected] "\n"
154 [email protected]
155 [email protected] "where"
156 [email protected] "\n "
157 [email protected]
158 [email protected] "for"
159 [email protected]
160 [email protected] "<"
161 [email protected]
162 [email protected] "\'a"
163 [email protected] ">"
164 [email protected] " "
165 [email protected]
166 [email protected] "for"
167 [email protected]
168 [email protected] "<"
169 [email protected]
170 [email protected] "\'b"
171 [email protected] ">"
172 [email protected] " "
173 [email protected]
174 [email protected] "for"
175 [email protected]
176 [email protected] "<"
177 [email protected]
178 [email protected] "\'c"
179 [email protected] ">"
180 [email protected] " "
181 [email protected]
182 [email protected] "fn"
183 [email protected]
184 [email protected] "("
185 [email protected]
186 [email protected]
187 [email protected] "&"
188 [email protected] "\'a"
189 [email protected] " "
190 [email protected]
191 [email protected]
192 [email protected]
193 [email protected]
194 [email protected] "T"
195 [email protected] ","
196 [email protected] " "
197 [email protected]
198 [email protected]
199 [email protected] "&"
200 [email protected] "\'b"
201 [email protected] " "
202 [email protected]
203 [email protected]
204 [email protected]
205 [email protected]
206 [email protected] "T"
207 [email protected] ","
208 [email protected] " "
209 [email protected]
210 [email protected]
211 [email protected] "&"
212 [email protected] "\'c"
213 [email protected] " "
214 [email protected]
215 [email protected]
216 [email protected]
217 [email protected]
218 [email protected] "T"
219 [email protected] ")"
220 [email protected] ":"
221 [email protected] " "
222 [email protected]
223 [email protected]
224 [email protected]
225 [email protected]
226 [email protected]
227 [email protected]
228 [email protected] "Copy"
229 [email protected] ","
230 [email protected] "\n"
231 [email protected]
232 [email protected] "{"
233 [email protected] "\n"
234 [email protected] "}"
235 [email protected] "\n"
236error 21..21: expected a function pointer or path
237error 52..52: expected a function pointer or path
238error 88..88: expected a function pointer or path
239error 119..119: expected a function pointer or path
240error 195..195: expected a function pointer or path
diff --git a/crates/ra_syntax/test_data/parser/err/0044_unexpected_for_type.rs b/crates/ra_syntax/test_data/parser/err/0044_unexpected_for_type.rs
index f34ac7fc5..0e9f8ccb4 100644
--- a/crates/ra_syntax/test_data/parser/err/0044_unexpected_for_type.rs
+++ b/crates/ra_syntax/test_data/parser/err/0044_unexpected_for_type.rs
@@ -1,3 +1,9 @@
1type A = for<'a> &'a u32; 1type ForRef = for<'a> &'a u32;
2type B = for<'a> (&'a u32,); 2type ForTup = for<'a> (&'a u32,);
3type B = for<'a> [u32]; 3type ForSlice = for<'a> [u32];
4type ForForFn = for<'a> for<'b> fn(&'a i32, &'b i32);
5fn for_for_for<T>()
6where
7 for<'a> for<'b> for<'c> fn(&'a T, &'b T, &'c T): Copy,
8{
9}
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0003_where_pred_for.rast b/crates/ra_syntax/test_data/parser/inline/ok/0003_where_pred_for.rast
index 4f88bfe43..cd0892451 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0003_where_pred_for.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0003_where_pred_for.rast
@@ -1,4 +1,4 @@
1SOURCE_FILE@0..292 1SOURCE_FILE@0..54
2 [email protected] 2 [email protected]
3 [email protected] "fn" 3 [email protected] "fn"
4 [email protected] " " 4 [email protected] " "
@@ -58,253 +58,3 @@ [email protected]
58 [email protected] " " 58 [email protected] " "
59 [email protected] "}" 59 [email protected] "}"
60 [email protected] "\n" 60 [email protected] "\n"
61 [email protected]
62 [email protected] "fn"
63 [email protected] " "
64 [email protected]
65 [email protected] "for_ref"
66 [email protected]
67 [email protected] "<"
68 [email protected]
69 [email protected]
70 [email protected] "F"
71 [email protected] ">"
72 [email protected]
73 [email protected] "("
74 [email protected] ")"
75 [email protected] "\n"
76 [email protected]
77 [email protected] "where"
78 [email protected] "\n "
79 [email protected]
80 [email protected] "for"
81 [email protected]
82 [email protected] "<"
83 [email protected]
84 [email protected] "\'a"
85 [email protected] ">"
86 [email protected] " "
87 [email protected]
88 [email protected] "&"
89 [email protected] "\'a"
90 [email protected] " "
91 [email protected]
92 [email protected]
93 [email protected]
94 [email protected]
95 [email protected] "F"
96 [email protected] ":"
97 [email protected] " "
98 [email protected]
99 [email protected]
100 [email protected]
101 [email protected]
102 [email protected]
103 [email protected]
104 [email protected] "Debug"
105 [email protected] "\n"
106 [email protected]
107 [email protected] "{"
108 [email protected] " "
109 [email protected] "}"
110 [email protected] "\n"
111 [email protected]
112 [email protected] "fn"
113 [email protected] " "
114 [email protected]
115 [email protected] "for_parens"
116 [email protected]
117 [email protected] "<"
118 [email protected]
119 [email protected]
120 [email protected] "F"
121 [email protected] ">"
122 [email protected]
123 [email protected] "("
124 [email protected] ")"
125 [email protected] "\n"
126 [email protected]
127 [email protected] "where"
128 [email protected] "\n "
129 [email protected]
130 [email protected] "for"
131 [email protected]
132 [email protected] "<"
133 [email protected]
134 [email protected] "\'a"
135 [email protected] ">"
136 [email protected] " "
137 [email protected]
138 [email protected] "("
139 [email protected]
140 [email protected] "&"
141 [email protected] "\'a"
142 [email protected] " "
143 [email protected]
144 [email protected]
145 [email protected]
146 [email protected]
147 [email protected] "F"
148 [email protected] ")"
149 [email protected] ":"
150 [email protected] " "
151 [email protected]
152 [email protected]
153 [email protected]
154 [email protected]
155 [email protected]
156 [email protected]
157 [email protected] "Fn"
158 [email protected]
159 [email protected] "("
160 [email protected]
161 [email protected]
162 [email protected] "&"
163 [email protected] "\'a"
164 [email protected] " "
165 [email protected]
166 [email protected]
167 [email protected]
168 [email protected]
169 [email protected] "str"
170 [email protected] ")"
171 [email protected] "\n"
172 [email protected]
173 [email protected] "{"
174 [email protected] " "
175 [email protected] "}"
176 [email protected] "\n"
177 [email protected]
178 [email protected] "fn"
179 [email protected] " "
180 [email protected]
181 [email protected] "for_slice"
182 [email protected]
183 [email protected] "<"
184 [email protected]
185 [email protected]
186 [email protected] "F"
187 [email protected] ">"
188 [email protected]
189 [email protected] "("
190 [email protected] ")"
191 [email protected] "\n"
192 [email protected]
193 [email protected] "where"
194 [email protected] "\n "
195 [email protected]
196 [email protected] "for"
197 [email protected]
198 [email protected] "<"
199 [email protected]
200 [email protected] "\'a"
201 [email protected] ">"
202 [email protected] " "
203 [email protected]
204 [email protected] "["
205 [email protected]
206 [email protected] "&"
207 [email protected] "\'a"
208 [email protected] " "
209 [email protected]
210 [email protected]
211 [email protected]
212 [email protected]
213 [email protected] "F"
214 [email protected] "]"
215 [email protected] ":"
216 [email protected] " "
217 [email protected]
218 [email protected]
219 [email protected]
220 [email protected]
221 [email protected]
222 [email protected]
223 [email protected] "Eq"
224 [email protected] "\n"
225 [email protected]
226 [email protected] "{"
227 [email protected] " "
228 [email protected] "}"
229 [email protected] "\n"
230 [email protected]
231 [email protected] "fn"
232 [email protected] " "
233 [email protected]
234 [email protected] "for_qpath"
235 [email protected]
236 [email protected] "<"
237 [email protected]
238 [email protected]
239 [email protected] "T"
240 [email protected] ">"
241 [email protected]
242 [email protected] "("
243 [email protected]
244 [email protected]
245 [email protected]
246 [email protected] "_t"
247 [email protected] ":"
248 [email protected] " "
249 [email protected]
250 [email protected] "&"
251 [email protected]
252 [email protected]
253 [email protected]
254 [email protected]
255 [email protected] "T"
256 [email protected] ")"
257 [email protected] "\n"
258 [email protected]
259 [email protected] "where"
260 [email protected] "\n "
261 [email protected]
262 [email protected] "for"
263 [email protected]
264 [email protected] "<"
265 [email protected]
266 [email protected] "\'a"
267 [email protected] ">"
268 [email protected] " "
269 [email protected]
270 [email protected]
271 [email protected]
272 [email protected]
273 [email protected] "<"
274 [email protected]
275 [email protected] "&"
276 [email protected] "\'a"
277 [email protected] " "
278 [email protected]
279 [email protected]
280 [email protected]
281 [email protected]
282 [email protected] "T"
283 [email protected] " "
284 [email protected] "as"
285 [email protected] " "
286 [email protected]
287 [email protected]
288 [email protected]
289 [email protected]
290 [email protected] "Baz"
291 [email protected] ">"
292 [email protected] "::"
293 [email protected]
294 [email protected]
295 [email protected] "Foo"
296 [email protected] ":"
297 [email protected] " "
298 [email protected]
299 [email protected]
300 [email protected]
301 [email protected]
302 [email protected]
303 [email protected]
304 [email protected] "Iterator"
305 [email protected] "\n"
306 [email protected]
307 [email protected] "{"
308 [email protected] " "
309 [email protected] "}"
310 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0003_where_pred_for.rs b/crates/ra_syntax/test_data/parser/inline/ok/0003_where_pred_for.rs
index 2d47596be..423bc105b 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0003_where_pred_for.rs
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0003_where_pred_for.rs
@@ -2,19 +2,3 @@ fn for_trait<F>()
2where 2where
3 for<'a> F: Fn(&'a str) 3 for<'a> F: Fn(&'a str)
4{ } 4{ }
5fn for_ref<F>()
6where
7 for<'a> &'a F: Debug
8{ }
9fn for_parens<F>()
10where
11 for<'a> (&'a F): Fn(&'a str)
12{ }
13fn for_slice<F>()
14where
15 for<'a> [&'a F]: Eq
16{ }
17fn for_qpath<T>(_t: &T)
18where
19 for<'a> <&'a T as Baz>::Foo: Iterator
20{ }
diff --git a/crates/ra_syntax/test_data/parser/ok/0067_where_for_pred.rast b/crates/ra_syntax/test_data/parser/ok/0067_where_for_pred.rast
new file mode 100644
index 000000000..503585103
--- /dev/null
+++ b/crates/ra_syntax/test_data/parser/ok/0067_where_for_pred.rast
@@ -0,0 +1,392 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "for_trait"
7 [email protected]
8 [email protected] "<"
9 [email protected]
10 [email protected]
11 [email protected] "F"
12 [email protected] ">"
13 [email protected]
14 [email protected] "("
15 [email protected] ")"
16 [email protected] "\n"
17 [email protected]
18 [email protected] "where"
19 [email protected] "\n "
20 [email protected]
21 [email protected] "for"
22 [email protected]
23 [email protected] "<"
24 [email protected]
25 [email protected] "\'a"
26 [email protected] ">"
27 [email protected] " "
28 [email protected]
29 [email protected]
30 [email protected]
31 [email protected]
32 [email protected] "F"
33 [email protected] ":"
34 [email protected] " "
35 [email protected]
36 [email protected]
37 [email protected]
38 [email protected]
39 [email protected]
40 [email protected]
41 [email protected] "Fn"
42 [email protected]
43 [email protected] "("
44 [email protected]
45 [email protected]
46 [email protected] "&"
47 [email protected] "\'a"
48 [email protected] " "
49 [email protected]
50 [email protected]
51 [email protected]
52 [email protected]
53 [email protected] "str"
54 [email protected] ")"
55 [email protected] ","
56 [email protected] "\n"
57 [email protected]
58 [email protected] "{"
59 [email protected] "\n"
60 [email protected] "}"
61 [email protected] "\n"
62 [email protected]
63 [email protected] "fn"
64 [email protected] " "
65 [email protected]
66 [email protected] "for_ref"
67 [email protected]
68 [email protected] "<"
69 [email protected]
70 [email protected]
71 [email protected] "F"
72 [email protected] ">"
73 [email protected]
74 [email protected] "("
75 [email protected] ")"
76 [email protected] "\n"
77 [email protected]
78 [email protected] "where"
79 [email protected] "\n "
80 [email protected]
81 [email protected] "for"
82 [email protected]
83 [email protected] "<"
84 [email protected]
85 [email protected] "\'a"
86 [email protected] ">"
87 [email protected] " "
88 [email protected]
89 [email protected] "&"
90 [email protected] "\'a"
91 [email protected] " "
92 [email protected]
93 [email protected]
94 [email protected]
95 [email protected]
96 [email protected] "F"
97 [email protected] ":"
98 [email protected] " "
99 [email protected]
100 [email protected]
101 [email protected]
102 [email protected]
103 [email protected]
104 [email protected]
105 [email protected] "Debug"
106 [email protected] ","
107 [email protected] "\n"
108 [email protected]
109 [email protected] "{"
110 [email protected] "\n"
111 [email protected] "}"
112 [email protected] "\n"
113 [email protected]
114 [email protected] "fn"
115 [email protected] " "
116 [email protected]
117 [email protected] "for_parens"
118 [email protected]
119 [email protected] "<"
120 [email protected]
121 [email protected]
122 [email protected] "F"
123 [email protected] ">"
124 [email protected]
125 [email protected] "("
126 [email protected] ")"
127 [email protected] "\n"
128 [email protected]
129 [email protected] "where"
130 [email protected] "\n "
131 [email protected]
132 [email protected] "for"
133 [email protected]
134 [email protected] "<"
135 [email protected]
136 [email protected] "\'a"
137 [email protected] ">"
138 [email protected] " "
139 [email protected]
140 [email protected] "("
141 [email protected]
142 [email protected] "&"
143 [email protected] "\'a"
144 [email protected] " "
145 [email protected]
146 [email protected]
147 [email protected]
148 [email protected]
149 [email protected] "F"
150 [email protected] ")"
151 [email protected] ":"
152 [email protected] " "
153 [email protected]
154 [email protected]
155 [email protected]
156 [email protected]
157 [email protected]
158 [email protected]
159 [email protected] "Fn"
160 [email protected]
161 [email protected] "("
162 [email protected]
163 [email protected]
164 [email protected] "&"
165 [email protected] "\'a"
166 [email protected] " "
167 [email protected]
168 [email protected]
169 [email protected]
170 [email protected]
171 [email protected] "str"
172 [email protected] ")"
173 [email protected] ","
174 [email protected] "\n"
175 [email protected]
176 [email protected] "{"
177 [email protected] "\n"
178 [email protected] "}"
179 [email protected] "\n"
180 [email protected]
181 [email protected] "fn"
182 [email protected] " "
183 [email protected]
184 [email protected] "for_slice"
185 [email protected]
186 [email protected] "<"
187 [email protected]
188 [email protected]
189 [email protected] "F"
190 [email protected] ">"
191 [email protected]
192 [email protected] "("
193 [email protected] ")"
194 [email protected] "\n"
195 [email protected]
196 [email protected] "where"
197 [email protected] "\n "
198 [email protected]
199 [email protected] "for"
200 [email protected]
201 [email protected] "<"
202 [email protected]
203 [email protected] "\'a"
204 [email protected] ">"
205 [email protected] " "
206 [email protected]
207 [email protected] "["
208 [email protected]
209 [email protected] "&"
210 [email protected] "\'a"
211 [email protected] " "
212 [email protected]
213 [email protected]
214 [email protected]
215 [email protected]
216 [email protected] "F"
217 [email protected] "]"
218 [email protected] ":"
219 [email protected] " "
220 [email protected]
221 [email protected]
222 [email protected]
223 [email protected]
224 [email protected]
225 [email protected]
226 [email protected] "Eq"
227 [email protected] ","
228 [email protected] "\n"
229 [email protected]
230 [email protected] "{"
231 [email protected] "\n"
232 [email protected] "}"
233 [email protected] "\n"
234 [email protected]
235 [email protected] "fn"
236 [email protected] " "
237 [email protected]
238 [email protected] "for_qpath"
239 [email protected]
240 [email protected] "<"
241 [email protected]
242 [email protected]
243 [email protected] "T"
244 [email protected] ">"
245 [email protected]
246 [email protected] "("
247 [email protected]
248 [email protected]
249 [email protected]
250 [email protected] "_t"
251 [email protected] ":"
252 [email protected] " "
253 [email protected]
254 [email protected] "&"
255 [email protected]
256 [email protected]
257 [email protected]
258 [email protected]
259 [email protected] "T"
260 [email protected] ")"
261 [email protected] "\n"
262 [email protected]
263 [email protected] "where"
264 [email protected] "\n "
265 [email protected]
266 [email protected] "for"
267 [email protected]
268 [email protected] "<"
269 [email protected]
270 [email protected] "\'a"
271 [email protected] ">"
272 [email protected] " "
273 [email protected]
274 [email protected]
275 [email protected]
276 [email protected]
277 [email protected] "<"
278 [email protected]
279 [email protected] "&"
280 [email protected] "\'a"
281 [email protected] " "
282 [email protected]
283 [email protected]
284 [email protected]
285 [email protected]
286 [email protected] "T"
287 [email protected] " "
288 [email protected] "as"
289 [email protected] " "
290 [email protected]
291 [email protected]
292 [email protected]
293 [email protected]
294 [email protected] "Baz"
295 [email protected] ">"
296 [email protected] "::"
297 [email protected]
298 [email protected]
299 [email protected] "Foo"
300 [email protected] ":"
301 [email protected] " "
302 [email protected]
303 [email protected]
304 [email protected]
305 [email protected]
306 [email protected]
307 [email protected]
308 [email protected] "Iterator"
309 [email protected] ","
310 [email protected] "\n"
311 [email protected]
312 [email protected] "{"
313 [email protected] "\n"
314 [email protected] "}"
315 [email protected] "\n"
316 [email protected]
317 [email protected] "fn"
318 [email protected] " "
319 [email protected]
320 [email protected] "for_for_fn"
321 [email protected]
322 [email protected] "<"
323 [email protected]
324 [email protected]
325 [email protected] "T"
326 [email protected] ">"
327 [email protected]
328 [email protected] "("
329 [email protected] ")"
330 [email protected] "\n"
331 [email protected]
332 [email protected] "where"
333 [email protected] "\n "
334 [email protected]
335 [email protected] "for"
336 [email protected]
337 [email protected] "<"
338 [email protected]
339 [email protected] "\'a"
340 [email protected] ">"
341 [email protected] " "
342 [email protected]
343 [email protected] "for"
344 [email protected]
345 [email protected] "<"
346 [email protected]
347 [email protected] "\'b"
348 [email protected] ">"
349 [email protected] " "
350 [email protected]
351 [email protected] "fn"
352 [email protected]
353 [email protected] "("
354 [email protected]
355 [email protected]
356 [email protected] "&"
357 [email protected] "\'a"
358 [email protected] " "
359 [email protected]
360 [email protected]
361 [email protected]
362 [email protected]
363 [email protected] "T"
364 [email protected] ","
365 [email protected] " "
366 [email protected]
367 [email protected]
368 [email protected] "&"
369 [email protected] "\'b"
370 [email protected] " "
371 [email protected]
372 [email protected]
373 [email protected]
374 [email protected]
375 [email protected] "T"
376 [email protected] ")"
377 [email protected] ":"
378 [email protected] " "
379 [email protected]
380 [email protected]
381 [email protected]
382 [email protected]
383 [email protected]
384 [email protected]
385 [email protected] "Copy"
386 [email protected] ","
387 [email protected] "\n"
388 [email protected]
389 [email protected] "{"
390 [email protected] "\n"
391 [email protected] "}"
392 [email protected] "\n"
diff --git a/crates/ra_syntax/test_data/parser/ok/0067_where_for_pred.rs b/crates/ra_syntax/test_data/parser/ok/0067_where_for_pred.rs
new file mode 100644
index 000000000..9058c4619
--- /dev/null
+++ b/crates/ra_syntax/test_data/parser/ok/0067_where_for_pred.rs
@@ -0,0 +1,30 @@
1fn for_trait<F>()
2where
3 for<'a> F: Fn(&'a str),
4{
5}
6fn for_ref<F>()
7where
8 for<'a> &'a F: Debug,
9{
10}
11fn for_parens<F>()
12where
13 for<'a> (&'a F): Fn(&'a str),
14{
15}
16fn for_slice<F>()
17where
18 for<'a> [&'a F]: Eq,
19{
20}
21fn for_qpath<T>(_t: &T)
22where
23 for<'a> <&'a T as Baz>::Foo: Iterator,
24{
25}
26fn for_for_fn<T>()
27where
28 for<'a> for<'b> fn(&'a T, &'b T): Copy,
29{
30}