]> git.lizzy.rs Git - rust.git/blob - src/test/ui/typeck/typeck_type_placeholder_item.stderr
Do not ICE on assoc type with bad placeholder
[rust.git] / src / test / ui / typeck / typeck_type_placeholder_item.stderr
1 error: expected identifier, found reserved identifier `_`
2   --> $DIR/typeck_type_placeholder_item.rs:154:18
3    |
4 LL | struct BadStruct<_>(_);
5    |                  ^ expected identifier, found reserved identifier
6
7 error: expected identifier, found reserved identifier `_`
8   --> $DIR/typeck_type_placeholder_item.rs:157:16
9    |
10 LL | trait BadTrait<_> {}
11    |                ^ expected identifier, found reserved identifier
12
13 error: expected identifier, found reserved identifier `_`
14   --> $DIR/typeck_type_placeholder_item.rs:167:19
15    |
16 LL | struct BadStruct1<_, _>(_);
17    |                   ^ expected identifier, found reserved identifier
18
19 error: expected identifier, found reserved identifier `_`
20   --> $DIR/typeck_type_placeholder_item.rs:167:22
21    |
22 LL | struct BadStruct1<_, _>(_);
23    |                      ^ expected identifier, found reserved identifier
24
25 error: expected identifier, found reserved identifier `_`
26   --> $DIR/typeck_type_placeholder_item.rs:172:19
27    |
28 LL | struct BadStruct2<_, T>(_, T);
29    |                   ^ expected identifier, found reserved identifier
30
31 error: associated constant in `impl` without body
32   --> $DIR/typeck_type_placeholder_item.rs:205:5
33    |
34 LL |     const C: _;
35    |     ^^^^^^^^^^-
36    |               |
37    |               help: provide a definition for the constant: `= <expr>;`
38
39 error[E0403]: the name `_` is already used for a generic parameter in this item's generic parameters
40   --> $DIR/typeck_type_placeholder_item.rs:167:22
41    |
42 LL | struct BadStruct1<_, _>(_);
43    |                   -  ^ already used
44    |                   |
45    |                   first use of `_`
46
47 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
48   --> $DIR/typeck_type_placeholder_item.rs:6:14
49    |
50 LL | fn test() -> _ { 5 }
51    |              ^
52    |              |
53    |              not allowed in type signatures
54    |              help: replace with the correct return type: `i32`
55
56 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
57   --> $DIR/typeck_type_placeholder_item.rs:9:16
58    |
59 LL | fn test2() -> (_, _) { (5, 5) }
60    |               -^--^-
61    |               ||  |
62    |               ||  not allowed in type signatures
63    |               |not allowed in type signatures
64    |               help: replace with the correct return type: `(i32, i32)`
65
66 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
67   --> $DIR/typeck_type_placeholder_item.rs:12:15
68    |
69 LL | static TEST3: _ = "test";
70    |               ^
71    |               |
72    |               not allowed in type signatures
73    |               help: replace `_` with the correct type: `&str`
74
75 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
76   --> $DIR/typeck_type_placeholder_item.rs:15:15
77    |
78 LL | static TEST4: _ = 145;
79    |               ^
80    |               |
81    |               not allowed in type signatures
82    |               help: replace `_` with the correct type: `i32`
83
84 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
85   --> $DIR/typeck_type_placeholder_item.rs:18:15
86    |
87 LL | static TEST5: (_, _) = (1, 2);
88    |               ^^^^^^ not allowed in type signatures
89
90 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
91   --> $DIR/typeck_type_placeholder_item.rs:21:13
92    |
93 LL | fn test6(_: _) { }
94    |             ^ not allowed in type signatures
95    |
96 help: use type parameters instead
97    |
98 LL | fn test6<T>(_: T) { }
99    |         ^^^    ^
100
101 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
102   --> $DIR/typeck_type_placeholder_item.rs:24:18
103    |
104 LL | fn test6_b<T>(_: _, _: T) { }
105    |                  ^ not allowed in type signatures
106    |
107 help: use type parameters instead
108    |
109 LL | fn test6_b<T, U>(_: U, _: T) { }
110    |             ^^^     ^
111
112 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
113   --> $DIR/typeck_type_placeholder_item.rs:27:30
114    |
115 LL | fn test6_c<T, K, L, A, B>(_: _, _: (T, K, L, A, B)) { }
116    |                              ^ not allowed in type signatures
117    |
118 help: use type parameters instead
119    |
120 LL | fn test6_c<T, K, L, A, B, U>(_: U, _: (T, K, L, A, B)) { }
121    |                         ^^^     ^
122
123 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
124   --> $DIR/typeck_type_placeholder_item.rs:30:13
125    |
126 LL | fn test7(x: _) { let _x: usize = x; }
127    |             ^ not allowed in type signatures
128    |
129 help: use type parameters instead
130    |
131 LL | fn test7<T>(x: T) { let _x: usize = x; }
132    |         ^^^    ^
133
134 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
135   --> $DIR/typeck_type_placeholder_item.rs:33:22
136    |
137 LL | fn test8(_f: fn() -> _) { }
138    |                      ^
139    |                      |
140    |                      not allowed in type signatures
141    |                      help: use type parameters instead: `T`
142
143 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
144   --> $DIR/typeck_type_placeholder_item.rs:33:22
145    |
146 LL | fn test8(_f: fn() -> _) { }
147    |                      ^ not allowed in type signatures
148    |
149 help: use type parameters instead
150    |
151 LL | fn test8<T>(_f: fn() -> T) { }
152    |         ^^^             ^
153
154 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
155   --> $DIR/typeck_type_placeholder_item.rs:47:26
156    |
157 LL | fn test11(x: &usize) -> &_ {
158    |                         -^
159    |                         ||
160    |                         |not allowed in type signatures
161    |                         help: replace with the correct return type: `&&usize`
162
163 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
164   --> $DIR/typeck_type_placeholder_item.rs:52:52
165    |
166 LL | unsafe fn test12(x: *const usize) -> *const *const _ {
167    |                                      --------------^
168    |                                      |             |
169    |                                      |             not allowed in type signatures
170    |                                      help: replace with the correct return type: `*const *const usize`
171
172 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
173   --> $DIR/typeck_type_placeholder_item.rs:66:8
174    |
175 LL |     a: _,
176    |        ^ not allowed in type signatures
177 LL |
178 LL |     b: (_, _),
179    |         ^  ^ not allowed in type signatures
180    |         |
181    |         not allowed in type signatures
182    |
183 help: use type parameters instead
184    |
185 LL | struct Test10<T> {
186 LL |     a: T,
187 LL |
188 LL |     b: (T, T),
189    |
190
191 error: missing type for `static` item
192   --> $DIR/typeck_type_placeholder_item.rs:72:12
193    |
194 LL |     static A = 42;
195    |            ^ help: provide a type for the item: `A: i32`
196
197 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
198   --> $DIR/typeck_type_placeholder_item.rs:74:15
199    |
200 LL |     static B: _ = 42;
201    |               ^
202    |               |
203    |               not allowed in type signatures
204    |               help: replace `_` with the correct type: `i32`
205
206 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
207   --> $DIR/typeck_type_placeholder_item.rs:76:15
208    |
209 LL |     static C: Option<_> = Some(42);
210    |               ^^^^^^^^^ not allowed in type signatures
211
212 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
213   --> $DIR/typeck_type_placeholder_item.rs:79:21
214    |
215 LL |     fn fn_test() -> _ { 5 }
216    |                     ^
217    |                     |
218    |                     not allowed in type signatures
219    |                     help: replace with the correct return type: `i32`
220
221 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
222   --> $DIR/typeck_type_placeholder_item.rs:82:23
223    |
224 LL |     fn fn_test2() -> (_, _) { (5, 5) }
225    |                      -^--^-
226    |                      ||  |
227    |                      ||  not allowed in type signatures
228    |                      |not allowed in type signatures
229    |                      help: replace with the correct return type: `(i32, i32)`
230
231 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
232   --> $DIR/typeck_type_placeholder_item.rs:85:22
233    |
234 LL |     static FN_TEST3: _ = "test";
235    |                      ^
236    |                      |
237    |                      not allowed in type signatures
238    |                      help: replace `_` with the correct type: `&str`
239
240 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
241   --> $DIR/typeck_type_placeholder_item.rs:88:22
242    |
243 LL |     static FN_TEST4: _ = 145;
244    |                      ^
245    |                      |
246    |                      not allowed in type signatures
247    |                      help: replace `_` with the correct type: `i32`
248
249 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
250   --> $DIR/typeck_type_placeholder_item.rs:91:22
251    |
252 LL |     static FN_TEST5: (_, _) = (1, 2);
253    |                      ^^^^^^ not allowed in type signatures
254
255 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
256   --> $DIR/typeck_type_placeholder_item.rs:94:20
257    |
258 LL |     fn fn_test6(_: _) { }
259    |                    ^ not allowed in type signatures
260    |
261 help: use type parameters instead
262    |
263 LL |     fn fn_test6<T>(_: T) { }
264    |                ^^^    ^
265
266 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
267   --> $DIR/typeck_type_placeholder_item.rs:97:20
268    |
269 LL |     fn fn_test7(x: _) { let _x: usize = x; }
270    |                    ^ not allowed in type signatures
271    |
272 help: use type parameters instead
273    |
274 LL |     fn fn_test7<T>(x: T) { let _x: usize = x; }
275    |                ^^^    ^
276
277 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
278   --> $DIR/typeck_type_placeholder_item.rs:100:29
279    |
280 LL |     fn fn_test8(_f: fn() -> _) { }
281    |                             ^
282    |                             |
283    |                             not allowed in type signatures
284    |                             help: use type parameters instead: `T`
285
286 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
287   --> $DIR/typeck_type_placeholder_item.rs:100:29
288    |
289 LL |     fn fn_test8(_f: fn() -> _) { }
290    |                             ^ not allowed in type signatures
291    |
292 help: use type parameters instead
293    |
294 LL |     fn fn_test8<T>(_f: fn() -> T) { }
295    |                ^^^             ^
296
297 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
298   --> $DIR/typeck_type_placeholder_item.rs:123:12
299    |
300 LL |         a: _,
301    |            ^ not allowed in type signatures
302 LL |
303 LL |         b: (_, _),
304    |             ^  ^ not allowed in type signatures
305    |             |
306    |             not allowed in type signatures
307    |
308 help: use type parameters instead
309    |
310 LL |     struct FnTest10<T> {
311 LL |         a: T,
312 LL |
313 LL |         b: (T, T),
314    |
315
316 error[E0282]: type annotations needed
317   --> $DIR/typeck_type_placeholder_item.rs:128:18
318    |
319 LL |     fn fn_test11(_: _) -> (_, _) { panic!() }
320    |                  ^ cannot infer type
321
322 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
323   --> $DIR/typeck_type_placeholder_item.rs:128:28
324    |
325 LL |     fn fn_test11(_: _) -> (_, _) { panic!() }
326    |                            ^  ^ not allowed in type signatures
327    |                            |
328    |                            not allowed in type signatures
329
330 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
331   --> $DIR/typeck_type_placeholder_item.rs:132:30
332    |
333 LL |     fn fn_test12(x: i32) -> (_, _) { (x, x) }
334    |                             -^--^-
335    |                             ||  |
336    |                             ||  not allowed in type signatures
337    |                             |not allowed in type signatures
338    |                             help: replace with the correct return type: `(i32, i32)`
339
340 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
341   --> $DIR/typeck_type_placeholder_item.rs:135:33
342    |
343 LL |     fn fn_test13(x: _) -> (i32, _) { (x, x) }
344    |                           ------^-
345    |                           |     |
346    |                           |     not allowed in type signatures
347    |                           help: replace with the correct return type: `(i32, i32)`
348
349 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
350   --> $DIR/typeck_type_placeholder_item.rs:154:21
351    |
352 LL | struct BadStruct<_>(_);
353    |                     ^ not allowed in type signatures
354    |
355 help: use type parameters instead
356    |
357 LL | struct BadStruct<T>(T);
358    |                  ^  ^
359
360 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
361   --> $DIR/typeck_type_placeholder_item.rs:159:15
362    |
363 LL | impl BadTrait<_> for BadStruct<_> {}
364    |               ^                ^ not allowed in type signatures
365    |               |
366    |               not allowed in type signatures
367    |
368 help: use type parameters instead
369    |
370 LL | impl<T> BadTrait<T> for BadStruct<T> {}
371    |     ^^^          ^                ^
372
373 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
374   --> $DIR/typeck_type_placeholder_item.rs:162:34
375    |
376 LL | fn impl_trait() -> impl BadTrait<_> {
377    |                                  ^ not allowed in type signatures
378
379 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
380   --> $DIR/typeck_type_placeholder_item.rs:167:25
381    |
382 LL | struct BadStruct1<_, _>(_);
383    |                         ^ not allowed in type signatures
384    |
385 help: use type parameters instead
386    |
387 LL | struct BadStruct1<T, _>(T);
388    |                   ^     ^
389
390 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
391   --> $DIR/typeck_type_placeholder_item.rs:172:25
392    |
393 LL | struct BadStruct2<_, T>(_, T);
394    |                         ^ not allowed in type signatures
395    |
396 help: use type parameters instead
397    |
398 LL | struct BadStruct2<U, T>(U, T);
399    |                   ^     ^
400
401 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
402   --> $DIR/typeck_type_placeholder_item.rs:176:14
403    |
404 LL | type X = Box<_>;
405    |              ^ not allowed in type signatures
406
407 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
408   --> $DIR/typeck_type_placeholder_item.rs:43:27
409    |
410 LL |     fn test10(&self, _x : _) { }
411    |                           ^ not allowed in type signatures
412    |
413 help: use type parameters instead
414    |
415 LL |     fn test10<T>(&self, _x : T) { }
416    |              ^^^             ^
417
418 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
419   --> $DIR/typeck_type_placeholder_item.rs:140:31
420    |
421 LL |     fn method_test1(&self, x: _);
422    |                               ^ not allowed in type signatures
423    |
424 help: use type parameters instead
425    |
426 LL |     fn method_test1<T>(&self, x: T);
427    |                    ^^^           ^
428
429 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
430   --> $DIR/typeck_type_placeholder_item.rs:142:31
431    |
432 LL |     fn method_test2(&self, x: _) -> _;
433    |                               ^     ^ not allowed in type signatures
434    |                               |
435    |                               not allowed in type signatures
436    |
437 help: use type parameters instead
438    |
439 LL |     fn method_test2<T>(&self, x: T) -> T;
440    |                    ^^^           ^     ^
441
442 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
443   --> $DIR/typeck_type_placeholder_item.rs:144:31
444    |
445 LL |     fn method_test3(&self) -> _;
446    |                               ^ not allowed in type signatures
447    |
448 help: use type parameters instead
449    |
450 LL |     fn method_test3<T>(&self) -> T;
451    |                    ^^^           ^
452
453 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
454   --> $DIR/typeck_type_placeholder_item.rs:146:26
455    |
456 LL |     fn assoc_fn_test1(x: _);
457    |                          ^ not allowed in type signatures
458    |
459 help: use type parameters instead
460    |
461 LL |     fn assoc_fn_test1<T>(x: T);
462    |                      ^^^    ^
463
464 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
465   --> $DIR/typeck_type_placeholder_item.rs:148:26
466    |
467 LL |     fn assoc_fn_test2(x: _) -> _;
468    |                          ^     ^ not allowed in type signatures
469    |                          |
470    |                          not allowed in type signatures
471    |
472 help: use type parameters instead
473    |
474 LL |     fn assoc_fn_test2<T>(x: T) -> T;
475    |                      ^^^    ^     ^
476
477 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
478   --> $DIR/typeck_type_placeholder_item.rs:150:28
479    |
480 LL |     fn assoc_fn_test3() -> _;
481    |                            ^ not allowed in type signatures
482    |
483 help: use type parameters instead
484    |
485 LL |     fn assoc_fn_test3<T>() -> T;
486    |                      ^^^      ^
487
488 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
489   --> $DIR/typeck_type_placeholder_item.rs:61:37
490    |
491 LL |     fn clone_from(&mut self, other: _) { *self = Test9; }
492    |                                     ^ not allowed in type signatures
493    |
494 help: use type parameters instead
495    |
496 LL |     fn clone_from<T>(&mut self, other: T) { *self = Test9; }
497    |                  ^^^                   ^
498
499 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
500   --> $DIR/typeck_type_placeholder_item.rs:110:34
501    |
502 LL |         fn fn_test10(&self, _x : _) { }
503    |                                  ^ not allowed in type signatures
504    |
505 help: use type parameters instead
506    |
507 LL |         fn fn_test10<T>(&self, _x : T) { }
508    |                     ^^^             ^
509
510 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
511   --> $DIR/typeck_type_placeholder_item.rs:118:41
512    |
513 LL |         fn clone_from(&mut self, other: _) { *self = FnTest9; }
514    |                                         ^ not allowed in type signatures
515    |
516 help: use type parameters instead
517    |
518 LL |         fn clone_from<T>(&mut self, other: T) { *self = FnTest9; }
519    |                      ^^^                   ^
520
521 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
522   --> $DIR/typeck_type_placeholder_item.rs:182:21
523    |
524 LL | type Y = impl Trait<_>;
525    |                     ^ not allowed in type signatures
526
527 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
528   --> $DIR/typeck_type_placeholder_item.rs:190:14
529    |
530 LL |     type B = _;
531    |              ^ not allowed in type signatures
532
533 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
534   --> $DIR/typeck_type_placeholder_item.rs:192:14
535    |
536 LL |     const C: _;
537    |              ^ not allowed in type signatures
538
539 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
540   --> $DIR/typeck_type_placeholder_item.rs:194:14
541    |
542 LL |     const D: _ = 42;
543    |              ^
544    |              |
545    |              not allowed in type signatures
546    |              help: replace `_` with the correct type: `i32`
547
548 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
549   --> $DIR/typeck_type_placeholder_item.rs:197:26
550    |
551 LL |     type F: std::ops::Fn(_);
552    |                          ^ not allowed in type signatures
553
554 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
555   --> $DIR/typeck_type_placeholder_item.rs:40:24
556    |
557 LL |     fn test9(&self) -> _ { () }
558    |                        ^
559    |                        |
560    |                        not allowed in type signatures
561    |                        help: replace with the correct return type: `()`
562
563 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
564   --> $DIR/typeck_type_placeholder_item.rs:58:24
565    |
566 LL |     fn clone(&self) -> _ { Test9 }
567    |                        ^
568    |                        |
569    |                        not allowed in type signatures
570    |                        help: replace with the correct return type: `Test9`
571
572 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
573   --> $DIR/typeck_type_placeholder_item.rs:107:31
574    |
575 LL |         fn fn_test9(&self) -> _ { () }
576    |                               ^
577    |                               |
578    |                               not allowed in type signatures
579    |                               help: replace with the correct return type: `()`
580
581 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
582   --> $DIR/typeck_type_placeholder_item.rs:115:28
583    |
584 LL |         fn clone(&self) -> _ { FnTest9 }
585    |                            ^
586    |                            |
587    |                            not allowed in type signatures
588    |                            help: replace with the correct return type: `main::FnTest9`
589
590 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
591   --> $DIR/typeck_type_placeholder_item.rs:201:14
592    |
593 LL |     type A = _;
594    |              ^ not allowed in type signatures
595
596 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
597   --> $DIR/typeck_type_placeholder_item.rs:203:14
598    |
599 LL |     type B = _;
600    |              ^ not allowed in type signatures
601
602 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
603   --> $DIR/typeck_type_placeholder_item.rs:205:14
604    |
605 LL |     const C: _;
606    |              ^ not allowed in type signatures
607
608 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
609   --> $DIR/typeck_type_placeholder_item.rs:208:14
610    |
611 LL |     const D: _ = 42;
612    |              ^
613    |              |
614    |              not allowed in type signatures
615    |              help: replace `_` with the correct type: `i32`
616
617 error: aborting due to 67 previous errors
618
619 Some errors have detailed explanations: E0121, E0282, E0403.
620 For more information about an error, try `rustc --explain E0121`.